Refactor merge request association preloader to be in a SSOT
<!--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=525647)
</details>
<!--IssueSummary end-->
This is based on @hfyngvason's suggestion in https://gitlab.com/gitlab-org/gitlab/-/issues/514744#note_2325818199 about having a SSOT class/module that will include all preloaded associations that we can use in different places. This way, we can re-use it and ensure it applies to all places it is needed.
This should include shared examples or helper methods that can be re-used by consumers.
As of this writing (2025-03-19), there are following preloaders in different locations:
- `ee/app/finders/ee/merge_requests_finder.rb`
- `ee/app/graphql/resolvers/concerns/ee/resolves_merge_requests.rb`
- `ee/app/models/ee/merge_request.rb`
- `ee/lib/ee/gitlab/ci/variables/preloader/merge_request.rb`
- (Upcoming) `ee/lib/ee/gitlab/data_builder/pipeline.rb`
issue