Jeversmann/git repo refactor

I tried to push the logic for handling repo urls into the RemoteServer classes, and then used delegating to preserve the old Repository methods. A bunch of specs had to be moved/rewritten after the refactoring and the RemoteServer constructor change. GitRepo now has private methods to handle submodules, which use RemoteServers to rewrite the submodule urls.
I added the RetryPartitioning endpoint because rebuild failed parts doesn't affect builds that error in partitioning, making them unsalvageable.
"repo" is not the right word to use here. We say "git server" elsewhere in the file.