Support Group Milestones to be associated with Project Releases in API
### Release notes
<!-- What is the problem and solution you're proposing? This content sets the overall vision for the feature and serves as the release notes that will populate in various places, including the [release post blog](https://about.gitlab.com/releases/categories/releases/) and [Gitlab project releases](https://gitlab.com/gitlab-org/gitlab/-/releases). " -->
Release managers working across multiple projects in GitLab often use Group Milestones to collect related items for a scheduled a release. You may have realized that GitLab Releases could be associated to a Project Milestone before and now you can associate a Group Milestone to a Project Release via the Releases API. This will be a great help to all the Release Managers coordinating their releases with milestones.
<!-- The first four sections: "Problem to solve", "Intended users", "User experience goal", and "Proposal", are strongly recommended, while the rest of the sections can be filled out during the problem validation or breakdown phase. However, keep in mind that providing complete and relevant information early helps our product team validate the problem and start working on a solution. -->
### Problem to solve
<!-- What problem do we solve? Try to define the who/what/why of the opportunity as a user story. For example, "As a (who), I want (what), so I can (why/value)." -->
As a breakdown of [Support release association to group milestones (Edit release page)](https://gitlab.com/gitlab-org/gitlab/-/issues/121476), we'll need to modify the [releases API](https://docs.gitlab.com/ee/api/releases/) to allow for submissions that `GET`, `POST`, `UPDATE`, and `DELETE` group milestones to be associated with a release. This will probably require creating a new `group_milestone` attribute and will likely need to be done after https://gitlab.com/gitlab-org/gitlab/-/issues/235387
### Proposal
<!-- How are we going to solve the problem? Try to include the user journey! https://about.gitlab.com/handbook/journeys/#user-journey -->
Only group milestones that belong to the project's immediate group can be added to the existing `milestones` array, milestones belonging to any of the project's ancestor groups cannot be added. There is existing validation in place that ensures there is not a naming clash between project and project's group milestones.
The signature if the of the release API call does not hange, and the groups could be added to the same array, ie:
```json
curl --header 'Content-Type: application/json' --request PUT --data '{"name": "milestone release", "milestones": ["release-milestone-1","subgroup-milestone"]}' --header "PRIVATE-TOKEN: <redacted>" "http://127.0.0.1:3000/api/v4/projects/20/releases/v25" | jq
```
Where **release-milestone-1** is the project milestone, and **subgroup-milestone** is the group milestone.
### Links / references
This is connected to https://gitlab.com/gitlab-org/gitlab/-/issues/235387, where we will make the association in the database.
This is Iteration 1 of
https://gitlab.com/gitlab-org/gitlab/-/issues/121476
issue