N+1 queries when resolving branch rules
## Summary
Preloading `approval_project_rules_with_unique_policies` in BranchRulesResolver seems to result in N+1 queries:
- https://gitlab.com/gitlab-org/gitlab/-/blob/577db9ee1616751ff223e9ff7b5071e485481265/ee/app/graphql/ee/resolvers/projects/branch_rules_resolver.rb#L45
Make a request for branch rules for a project with multiple protected branches:
For example:
```
query getBranchRulesEE($projectPath: ID!) {
project(fullPath: $projectPath) {
id
branchRules {
nodes {
approvalRules {
nodes {
id
}
}
}
}
}
}
```
Observe that a query for `approval_project_rules_with_unique_policies` is performed per protected branch.
## Improvements
Refactor that scope so that it can be eagerloaded or use some custom preloading
## Optional: Missing test coverage
Consider adding tests around here:
https://gitlab.com/gitlab-org/gitlab/-/blob/a9f1e3f17f68429e70ddbefe5a6d79ce8314160f/ee/spec/requests/api/graphql/project/branch_rules_spec.rb#L41
issue