Create protected branches and protected tags that match with regex
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=503652)
</details>
<!--IssueSummary end-->
- Add a column to `protected_branches` and `protected_tags` to indicate that it will use regex to match against ref names
- Change protected ref logic to consider `name` as a regex based on the new column
- Update controller and rest endpoints to accept a parameter for to create
Ensure that RE2 operators can be escaped. e.g. For example a branch like `1.{2}2` could be a problem (see [git-check-ref-format](https://git-scm.com/docs/git-check-ref-format#_description))
issue