Switch pants to use the java jar-tool utility to create jars.

It turns out the java jar utility and the backing java APIs hack the zip
format to support > 2^16 jar entries in zip32 jars (pre java 7).  The
easiest way to access this functionality is to delegate to the JDK jar
APIs.

This change maintains the in-use open_jar context manager but extends
its use to all pants jar creators and updaters as well as expanding its
functionality to cover explicit support for main and classpath manfiest
entries and merging jars.

Since the new jarring uses java APIs, duplicates are explicity
forbidden and so JarRules are exposed to control handling of dups via
a new JvmBinary.deploy_jar_rules attribute and the ability to set a
global site-wide set of default jar rules.

A little test infra housekeeping - aso add a JvmToolTaskTestBase for
task tests that need jvm tool bootstrapping infra to function (most
non-console Tasks).

Testing Done:
All tests pass including JarTaskTest and JarCreateTest:
$ PANTS_DEV=1 ./pants tests/python/pants_test/:all

Manual tests using the pingpong including binary, bundle and bundle --bundle-deployjar.
Fatjar timings are ~4 times faster than old pants.

Bugs closed: 144

Reviewed at https://rbcommons.com/s/twitter/r/395/
trying to get antlr to work with json and pants
fixed incorrect import statements
Trying to get thrift to work, as antlr is being problems
Nevermind, ThriftJava works now.
Thrift example is functional.
Added documentation, removed antlr stuff (shouldn't be on this branch)
Removed corresponding java examples regarding antlr stuff (see previous commit)