Endpoint interface grouping

The processor groups endpoints based on their first tag. Using the /ping example again its first (and only) tag is ping:

openapi: 3.0.2
info:
  title: openapi-processor-spring sample api
  version: 1.0.0

paths:
  /ping:
    get:
      tags:
        - ping
      summary: returns a single "pong" string.
      description: very simple sample endpoint
      responses:
        '200':
          description: pong
          content:
            text/plain:
              schema:
                type: string

The interface name used for this api will be PingApi. Ping because ping is the tags name and`Api` is a fixed string added to Ping.

In case no tags are available, all endpoints will be added to an Api interface.

The package name gets created from the configurable packageName parameter of the processor, and a sub package named api.

If the packageName is configured as io.openapiprocessor the final package name for the interface is io.openapiprocessor.api, and the full class & package name is io.openapiprocessor.api.PingApi.