Retry on failed scm push.  Also pull with rebase, to increase the odds of success.  Don't pull before tagging.

In addition, separate commit from push; this means that SVN will no longer be supportable, but that's OK because SVN users could use git-svn (which is supportable if anyone cares).

This review is meant to apply on to of https://rbcommons.com/s/twitter/r/1082/ -- when we're happy with 1082, I'll rewrite this one as necessary.

Testing Done:
Ran unit and integration tests for jar_publish. Also for git.

Reviewed at https://rbcommons.com/s/twitter/r/1083/
Sync of https://github.com/pantsbuild/pants/commit/2c602db227c8894732f83feba2d321c5629b5448