Since local git clones use hardlinks for objects, space isn't much of a
consideration for additional local clones. Space *is* a consideration
for submodules since we have been registering submodules for individual
revdirs; pointing .gitmodules to the git_server rather than the cache
dir.
This patch initializes and registers submodules in the cache directory
and remaps each rev to use objects from the cache dir (which is local,
so it creates hardlinks). Potentially saves disk-space for deploys were
submodules represent the majority of code/objects.
Fixes T137124