give whitelisted git environment variables a name
map git inflighting to path rather than URL
don't chownr the entire remotes hierarchy for each add

Just make sure that the templates and root-level directories are set to
the correct permissions for the cache. This probably addresses a latent
race condition for packages with a lot of git dependencies as well as
potentially eliminating a *lot* of superfluous filesystem operations.
normalize git URLs when caching (fixes #7009)

Offloads the bulk of the normalization to a new module dedicated to the
purpose, which will allow us to do a better job over time of not
duplicating Git remotes unless necessary.
pack tarballs to their final locations atomically
inflight directory packing, just to be safe