batches: base fork support
Created by: LawnGnome
This does not implement fork support for any actual source; that's coming in later branches.
The part of this that's probably interesting is that we don't track forks as full-blown repositories, as we can push simply by manipulating the remote URL, and this means we don't have to figure out how to separate the forks from indexable repos. Instead, the changeset still links to the target repo, and has the fork namespace as a nullable string on the changesets
record.
One knock on effect of this is that the headRepository
GraphQL field is now useless, as we don't have a repo for it to represent. I've gone ahead and deprecated it, since we don't use it anywhere in our frontend.
Part one of #17879.