search: add job mapper
Created by: rvantonder
This adds a Mapper
to map jobs. It's going to be very useful to restrict optimization to, e.g., modifying Zoekt or commit queries.
I had to move subrepoperms
into package run
to avoid a circular dependency (it was the only Job
that had this issue). We can try break this later if we have a dedicated job package. Right now the tradeoff is very much worth it, since we can operate/map over all jobs exhaustively this way.
By the way @camdencheek using a mapper is going to help cut down messier changes that I thought would be needed!
Test plan
Basic unit test. This functionality isn't used by any logic yet.