Extract shared codeowners logic into a gem
<!--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=389096)
</details>
<!--IssueSummary end-->
### Problem
There are two separate parser implementations for codeowners feature:
1. https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/lib/gitlab/code_owners/file.rb
2. https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/lib/code_owners/file.rb
It leads to inconsistency and makes it harder to maintain both versions
### Proposal
Extract common functionality into a gem
### Challenges
1. GitLab and Handbook projects have different structure and dependencies. For instance, Handbook does not have a direct access to database, does not support feature flags and caches.
issue