Decorate push_branch with a retry_on_errors and handle 128 return code

Recently GitRepository.push_branch() has been failing intermittently with
return code 128 although permissions are correct. Similar to the SSL errors,
it makes sense for this method to retry at most 3 times to push to the remote
before failing the command.

Testing this PR is quite hard as the error is fairly intermittent. Recent history of http://ci.openmicroscopy.org/view/Failing/job/SCC-merge/ is full of failures due to 128 return code. Having this job stay green for at least 10 builds with this PR merged in should be a good starting point.