Divorce 'binary' and 'bundle' goals from the 'jar' goal.

Save effort and time by extracting classfile jar creation
logic to JarTask and using this in JarCreate and JvmBinaryTask
to create classfile jars directly.  Previously BinaryCreate and
BundleCreate re-packed jars containing internal classes created
by the JarCreate Task.  Now time is saved by not creating these
middle-man jars at all.

Testing Done:
$ PANTS_DEV=1 ./pants goal test tests/python/::

Then:
Using `PANTS_DEV=1 ./pants goal bundle {src,tests}/{java,scala}::`

Before:
=======
1.419	main:jar
1.413	main:jar:jar
1.402	main:jar:jar:jar-create
1.327	main:resolve
1.322	main:resolve:ivy
1.295	main:jar:jar:jar-create:jar-tool
1.236	main:resolve:ivy:map-jars
0.638	main:bundle
0.632	main:bundle:bundle
0.605	main:bundle:bundle:create-monolithic-jar
0.442	main:bundle:bundle:create-monolithic-jar:jar-tool

After:
======
1.479	main:resolve
1.473	main:resolve:ivy
1.383	main:resolve:ivy:map-jars
0.708	main:bundle
0.701	main:bundle:bundle
0.669	main:bundle:bundle:create-monolithic-jar
0.493	main:bundle:bundle:create-monolithic-jar:jar-tool

IE: 1.419 seconds of JarCreate time cut out, and 0.063 seconds of Bundle time added.

I also verified binaries and bundles were still runnable and had embedded resources where they did before this change.

Bugs closed: 220

Reviewed at https://rbcommons.com/s/twitter/r/514/