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/
The backend changes for the hairball split
Python mechanical refactor + register.py
Codegen mechanical refactor + register.py
Python mechanical refactor + register.py

Also removed commands/register.py (these are plugin hooks now)
JVM mechanical refactor.  Also deleted goal/register.py
maven_layout backend
Remove global state from BuildFileParser
Some straggler deletes that were renamed or removed
Fix pants antlr namespace package for a test
A few straggler renames and targets that moved
Fix up all of the tests to be hairball free
BUILD tweaks to make sure the plugins are pulled all the way in
Fix a bunch of imports and missing BUILD deps
Trivial sort and dedup of BUILD deps
Cleanup merge conflict fallout