search: add ZoektGlobalQuery abstraction
Created by: rvantonder
Stacked on https://github.com/sourcegraph/sourcegraph/pull/26854.
This is prep for a global Zoekt search job. It's necessary to create a Zoekt query that can be initialized based on static properties and mutated/augmented at a later point to incorporate private repo permissions.
And actually, to bring back discussion with @tsenart and @stefanhengl: I think your work for repo pagination would affect global zoekt queries at some point (i.e., we would benefit from it, but we can probably ignore the cursor work in the context of global searches for now), because we sometimes have to look up private repo data, before we can do a Zoekt global search. This abstraction is going to help us also exactly expose Zoekt global search to a cursor, that could, for example, serve private repo data (or IDs) for global searches. So yeah "this is important and will help a lot". See inline comments.