git: Encapsulate object hash specific information
We have recently introduced the initial infrastructure to start testing with both SHA1 and SHA256. This MR here is a follow-up to neatly encapsulate hash-specific information in our production-facing code so that we can start using it when we write new code. The goal of this MR is to keep the conditionally-compiled logic at a bare minimum so that we're forced to either hardcode the object hash used, or alternatively to auto-detect it from a given repository.
This is a follow-up to the discussion at !4702 (comment 1027696692).
Edited by James Fargher