Geo: Handle moving project repository storage
Projects::UpdateRepositoryStorageService is called when an admin changes a project's shard.
- It physically moves a repository from one storage to another, on the primary
- The secondary fetches the whole repo into the new storage => OK but not ideal
- The secondary orphans the repo in the old storage => Not OK
- It leaves a pool repository
- It is known that secondaries don't handle object pools at the moment => cc @johncai please link an issue here if you create one