gitserver: Align gitserver.Client and ClientImplementor
Created by: ryanslade
Many of the methods of ClientImplementor weren't in the defined Client interface. This change aligns them.
We now have a big (and admittedly ugly) interface but at least it is a single source of truth for what gitserver exposes to the rest of the system. From here, we hope to start breaking the large interface into smaller ones and also shrinking the surface area of the interface as much as possible.
Test plan
All tests still pass