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.
This assertion is backwards. We expect a partitioning job to be enqueued.

The reason it isn't failing is because the mock is being placed on a different object than the one the controller is using. It may be easiest to mock that Resque does or does not receive enqueue for BuildPartitioningJob.