Expose data for GraphQL queries in Repository & Blob header app
<!--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=519752)
</details>
<!--IssueSummary end-->
## Context
We want to minimise the data we pass through the HAML and inject into Vue components. [Here's the spreadsheet with analysis (internal-only)](https://docs.google.com/spreadsheets/d/1yF4HYaIiK62YdjqMwnJYNqEaTbzF10hpvG7RbUmwRVg/edit?usp=sharing) of what we need and what is or is not exposed.
## Needed changes
| field name in HAML | is in GraphQL | Ruby reference | GraphQL reference | To do |
|--------------|-------|--------------|---------------|-----------------------------------------------------------------------------|
| project_root_path | FALSE | [project_root_path](https://gitlab.com/gitlab-org/gitlab/-/blob/061d101fcd29f3ab1b08177416986041ac78754f/app/views/projects/_files.html.haml#L24) | | Needed on `refSelector` change. Expose on `Project`. |
| xcode_url | FALSE | [xcode_ur](https://gitlab.com/gitlab-org/gitlab/-/blob/f36ba81ab3ab83f80e0827a6751cffe52568b9ec/app/helpers/tree_helper.rb#L171)l | | Expose on `Project` |
| kerberos_url | FALSE | [kerberos_url](https://gitlab.com/gitlab-org/gitlab/-/blob/f6524fdd92ad5f6780c47619ff83451ef7532b93/ee/app/helpers/ee/tree_helper.rb#L11)| | Expose on `Project` |
| is_binary | FALSE | [def binary?](https://gitlab.com/gitlab-org/gitlab/-/blob/e7faf55c710462e5e8edfee38e59b591323f5a20/app/models/blob.rb#L169) | [SnippetBlob binary](https://gitlab.com/gitlab-org/gitlab/-/blob/55672eee98188c2e08416d5438d4b30ac21260cf/app/graphql/types/snippets/blob_type.rb#L33) | Expose on `RepositoryBlob` |
issue