Support selecting code owners sections as required approval rule
<!-- 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 -->
### Problem to solve
Even when https://gitlab.com/gitlab-org/gitlab/-/issues/12137 is implemented, all code owner rules must be enforced or none. This means that if there are important compliance rules that must be enforced, every rule must be enforced. This means another team that simply wants to be notified and added as optional approvers of relevant merge requests must forgo using code owners or become a required approver.
### Further details
For example:
* the **compliance** team needs to make sure all changes to the `app/payments` code is reviewed by Jane
* there are multiple development teams that work on the payment code, and want to automatically assign code reviews to the correct teams, `app/payments/checkout`, `app/payments/renewal` and `app/payments/cancellation`
If the approval for `app/payments/checkout` is actually optional, they will still be required to given an approval.
### Proposal
1. Allow marking specific codeowners sections as "optional" on the code owners file
2. Allow users to target codeowners sections on merge request approval rules
### Links
* Closed epic here: https://gitlab.com/groups/gitlab-org/-/epics/4076
epic