Add GraphQL support for project targetBranchRules
## Summary
The GitLab GraphQL API exposes `targetBranchRules` on the `Project` type, which represents the "Merge request branch workflow" rules configurable under **Settings → Merge requests**. These rules allow repository maintainers to define patterns that map source branch names to a specific target branch for new merge requests.
This field and its associated mutations are not currently supported in client-go.
## Example query
```graphql
query {
project(fullPath: "gitlab-org/gitlab-test") {
targetBranchRules {
nodes {
id
name
targetBranch
createdAt
updatedAt
}
}
}
}
```
## What should be added
- A `TargetBranchRule` struct representing a single rule node
- A typed GraphQL query method (e.g. `GetProjectTargetBranchRules`) on the projects service or a dedicated service
- Mutations for creating, updating, and deleting target branch rules, mirroring the GraphQL mutations `targetBranchRuleCreate`, `targetBranchRuleUpdate`, and `targetBranchRuleDelete`
## Motivation
This is needed by [`glab`](https://gitlab.com/gitlab-org/cli) to fix [gitlab-org/cli#8232](https://gitlab.com/gitlab-org/cli/-/issues/8232), where `glab mr create` does not respect the repository's configured branch workflow rules and always targets the default branch instead. Without a typed wrapper here, `glab` would need to hand-roll a raw GraphQL query string via `client.GraphQL.Do()`, which is less maintainable and inconsistent with the rest of the library.
issue