Improve error recovery of failed repository/download sync
Right now if you somehow cause a branch in the secondary to be out of sync with the primary, Geo will attempt to retry downloading forever, and the repository will never recover.
We probably need a better strategy here. For example, if the repository fails to sync N times due to this error, keep the old copy and move it somewhere else, and then attempt a full redownload of the original repository. Be sure not to confuse the error with network disconnections, corrupted primary, etc.
Are there better ideas here?
/cc: @to1ne, @brodock, @dbalexandre