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.
Refactor retry_on_error to reduce complexity
merge master -D org: PR 159 (Tag release prefix)
merge master -D org: PR 176 (Teach scc merge commands to work with repos without issues)
merge master -D org: PR 180 (Decorate push_branch with a retry_on_errors and handle 128 return code)
merge master -D org

Repository: openmicroscopy/snoopycrimecop
Excluded PRs:
  # PR 177 sbesson 'Travis notifications' (status: error)
Already up-to-date.

Merged PRs:
  # PR 159 sbesson 'Tag release prefix'
  # PR 176 sbesson 'Teach scc merge commands to work with repos without issues'
  # PR 180 sbesson 'Decorate push_branch with a retry_on_errors and handle 128 return code'
Generated by SCC-merge#376 (http://ci.openmicroscopy.org/job/SCC-merge/376/)