Rewrite repo updater Store
Created by: asdine
This PR adds a new store to repo updater. It's a concrete type provides methods that are specific to repo-updater as well as observability.
Access to the shared repo store is made by calling the RepoStore()
or ExternalServiceStore()
methods, which returns the shared store that reuses the existing db or transaction handle.
This PR doesn't plug the new store to repo-updater.
Fixes #14714