Add an option to allow force pushes to protected branches when there are no branches in the project
<!-- 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). -->
### 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). " -->
### Problem to solve
<!-- What is the user problem you are trying to solve with this issue? -->
It is currently possible for users to be able to create new projects and then not be able to push new code to it. This happens when the [`Default branch protection`](https://docs.gitlab.com/ee/user/project/repository/branches/default.html#protect-initial-default-branches) setting for a project is `Fully protected` because there are no branches at all in the project, so one must be pushed, but pushing is forbidden.
This causes friction with teams where they need to ensure that users cannot force push but also means that individuals can't start a project without `Maintainer` permissions to disable the setting temporarily, push code, and then re-enable the setting, which is not desirable. Much of the background context on the friction this causes is discussed in [this issue](https://gitlab.com/gitlab-org/gitlab/-/issues/7583).
<details><summary>Current State</summary>

</details>
### Proposal
<!-- Use this section to explain the feature and how it will work. It can be helpful to add technical details, design proposals, and links to related epics or issues. -->
Add a new option for `Initial default branch protection` of "Fully protected after initial push" (or similar wording).
- When this value is selected, allow a project that has no default branch yet created to be force pushed to. Once the default branch does exist, act just like the existing `Fully protected` setting.
<!-- Label reminders
Use the following resources to find the appropriate labels:
- 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