Implement multiple repository mount points
What does this MR do?
Refactor repository paths handling to allow multiple git mount points
Are there points in the code the reviewer needs to double check?
Pretty much all of it.
Why was this MR needed?
Mostly because we need the ability to have multiple git mount points to distribute storage load and make it easier to migrate to new storage shards.