This is the logical progress after Ic621631031. SubmoduleOp/GitModules,
which are invoked from MergeOp, can also benefit from the same cache
structure. By having one central manager for opening repositories in
place, this also fixes a bug for our backend, which doesn't like
opening a repository multiple times with intermediate write backs.
Introduce a OpenRepoManager which can be shared across MergeOp,
SubmoduleOp and GitModules.
Change-Id: I8178e0150ef1f708e3026db8858846498c3adb9a