Create POST /api/v4/user/runners REST endpoint to create a runner and return an authentication token
<!-- This issue template can be used as a great starting point for feature requests. The section "Release notes" can be used as a summary of the feature and is also required if you want to have your release post blog MR auto generated using the release post item generator: https://about.gitlab.com/handbook/marketing/blog/release-posts/#release-post-item-generator. The remaining sections are the backbone for every feature in GitLab.
The goal of this template is brevity for quick/smaller iterations. For a more thorough list of considerations for larger features or feature sets, you can leverage the detailed [feature proposal](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal%20-%20detailed.md). -->
### Problem to solve
Customers rely on the current Runner REST API's and the `registration token` for automation that registers and associates Runners to an instance, group or project. The upcoming change to the use of an authentication token means we are implementing a [GraphQL API to automate Runner creation](https://docs.gitlab.com/ee/api/graphql/reference/index.html#mutationrunnercreate). However, as several customers are using REST for their automation, we need to ensure a REST API is available.
### Proposal
Develop a REST API for creating a Runner available to users with the `:create_runner` permission. The result is an authentication token. This API is the REST equivalent to the [`runnerCreate` GraphQL mutation](https://docs.gitlab.com/ee/api/graphql/reference/index.html#mutationrunnercreate).
### Release notes
Users can automate creating a runner associated with a user. This REST API endpoint supports the [Next GitLab Runner Token Architecture workflow](https://docs.gitlab.com/ee/architecture/blueprints/runner_tokens/). Available attributes include:
- `runner_type`
- `namespace_id`
- `description`
- `paused`
- `locked`
- `run_untagged`
- `tag_list`
- `access_level`
- `maximum_timeout`
- `maintenance_note`
<!-- Label reminders
Use the following resources to find the appropriate labels:
- Use only one tier label choosing the lowest tier this is intended for
- https://gitlab.com/gitlab-org/gitlab/-/labels
- https://about.gitlab.com/handbook/product/categories/features/
-->
<!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
*This page may contain information related to upcoming products, features and functionality.
It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes.
Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.*
<!-- triage-serverless v3 PLEASE DO NOT REMOVE THIS SECTION -->
issue