Extract merge method domain methods from Project model
### Problem to solve
There are a cluster of the `Project` model related to Merge Request merge methods that are in violation of our software guidelines: https://docs.gitlab.com/ee/development/software_design.html#taming-omniscient-classes
See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127531#note_1500200184 for background.
### Proposal
Extract a `MergeRequests::MergeMethod` domain model that takes `project` as an initializer argument and abstracts the merge method calculations.
issue