Make sure that 'option java_package' always overrides 'package' in protobuf_gen

Found a bug where:

option java_package = "foo";
package bar;

was processed differently from

package bar;
option java_package = "foo";

For java code generation, the setting of 'option java_package' should always win.

Testing Done:
Added a unit test.

Bugs closed: 629

Reviewed at https://rbcommons.com/s/twitter/r/1108/
Add test for jar_publish.  This required some refactoring so that functions could be mocked.

Includes a few minor cleanups to comments, error messages, docstrings,
etc.  This is in preparation for some improvements to how the scm integration is done.

Testing Done:
Ran the new tests and the integration tests.

Reviewed at https://rbcommons.com/s/twitter/r/1082/
Added an example of how to use Antlr with Java.

Testing Done:
Added integration test and unit test.

Bugs closed: 620

Reviewed at https://rbcommons.com/s/twitter/r/1088/
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/