Fixup jar, binary and bundle.

First and foremost this fixes binary (and bundle) to work with jvm_binary targets
that declare resources.

In general this divides binary and bundle into unrelated Tasks that share code
instead of products.  This allows for sane defaults for the binary Task, un-confusing
dist/ jar products - only binary now deposits binary jars at the root of dist now, and
generally simpler code.

Smaller fallout:
+ hide the JarCreate goal - this only outputs to the .pants.d/ dir now and so is an
implementation detail of dependee Tasks
+ fix the tar archivers to use '.' for the empty prefix - previously tar's were created
with absolute paths when no prefix was supplied

Testing Done:
Woeful - basically just manual.  Letting this fly in 2 parts, meat here, unit tests and samples follow up in diff 2.

$ PANTS_DEV=1 ./pants tests/python/pants_test/:all

Ad-hoc:
$ PANTS_DEV=1 ./pants goal binary src/java/com/pants/examples/hello/main/BUILD:main-bin && java -jar dist/main-bin.jar

$ PANTS_DEV=1 ./pants goal bundle src/java/com/pants/examples/hello/main/BUILD:main-bin && java -jar dist/main-bin-bundle/main-bin.jar
$ PANTS_DEV=1 ./pants goal bundle src/java/com/pants/examples/hello/main/BUILD:main-bin --bundle-deployjar && java -jar dist/main-bin-bundle/main-bin.jar
$ PANTS_DEV=1 ./pants goal bundle src/java/com/pants/examples/hello/main/BUILD:main-bin --bundle-archive=tgz
$ PANTS_DEV=1 ./pants goal bundle src/java/com/pants/examples/hello/main/BUILD:main-bin --bundle-archive=tgz --bundle-archive-prefix
$ PANTS_DEV=1 ./pants goal bundle src/java/com/pants/examples/hello/main/BUILD:main-bin --bundle-archive=zip
$ PANTS_DEV=1 ./pants goal bundle src/java/com/pants/examples/hello/main/BUILD:main-bin --bundle-archive=zip --bundle-deployjar

Bugs closed: 103, 108

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