added workunits to create_binary, added 'b' literal prefix for unicode class names in archive.py

Testing Done:
compiled my project with --binary-deployjar  that includes cucumber libs with unicode character classnames.

Bugs closed: 109

Reviewed at https://rbcommons.com/s/twitter/r/318/
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/
Squashed commit of the following:

commit a384aeb2ea733c0e0771d42f3a0e5c5605aca5d2
Merge: 5eb3030 f83eec5
Author: Patrick Lawson <pl@foursquare.com>
Date:   Mon May 5 15:50:15 2014 -0400

    Merge branch 'master' into build_graph_refactor

    Conflicts:
    	src/python/pants/tasks/cache_manager.py

commit 5eb303053541ac254688862f53535bbfe85b39a7
Author: Patrick Lawson <pl@foursquare.com>
Date:   Mon May 5 15:38:47 2014 -0400

    Fix sources globs in scala test

commit 415f9c51d23eaf1b24aa1b0f2edef5d84bb251d3
Author: Patrick Lawson <pl@foursquare.com>
Date:   Fri May 2 15:48:55 2014 -0400

    Fix up resource paths, dependencies target injection

commit 99a711111a6be481474ff7b232883dcd0a59fdb2
Author: Patrick Lawson <pl@foursquare.com>
Date:   Thu May 1 18:48:54 2014 -0400

    Minor codegen and leftover merge fixes

commit 16c1e62d99901afaa98b71f45ac08906ba078fe9
Merge: 0aa2ffb 73a6190
Author: Patrick Lawson <pl@foursquare.com>
Date:   Thu May 1 14:43:52 2014 -0400

    Merge branch 'master' into build_graph_refactor

    Conflicts:
    	3rdparty/BUILD
    	BUILD.tools
    	src/python/pants/commands/goal.py
    	src/python/pants/tasks/apache_thrift_gen.py
    	tests/python/pants_test/tasks/test_base.py
    	tests/python/pants_test/tasks/test_jar_create.py

commit 0aa2ffb1f6cf0a3176efe13845bcd1dadf716d39
Author: Patrick Lawson <pl@foursquare.com>
Date:   Thu May 1 14:31:00 2014 -0400

    Add back support for chunking

commit 3badf6a9600278312cac0c2773a85a7bab45fc46
Author: Patrick Lawson <pl@foursquare.com>
Date:   Wed Apr 30 18:21:43 2014 -0400

    Perf improvements for parsing and jar accumulation

    Correctness fixes for invalidation hashing
    Filtering for JarLibrary on IvyResolve

commit 9f8c3cc38c491a2b7c47a1c43a3563fb0a072ddb
Author: Patrick Lawson <pl@foursquare.com>
Date:   Wed Apr 30 13:17:01 2014 -0400

    Redo invalidation caching

commit 596ba2135306eaa550870fd3b5721e0a2156aa13
Author: Patrick Lawson <pl@foursquare.com>
Date:   Tue Apr 22 17:28:17 2014 -0400

    A bunch of cleanup to get a good PEX building

commit 9c7b75605949876266f6539ecb799799b361a531
Author: Patrick Lawson <pl@foursquare.com>
Date:   Tue Apr 22 16:20:40 2014 -0400

    Fix ivy_utils tests

commit 8f93e3d6b60d07cf314caedd29cd93c292764237
Author: Patrick Lawson <pl@foursquare.com>
Date:   Tue Apr 22 16:17:53 2014 -0400

    Fixes for dependees.  don't test builddict

commit f3a96581df09b4f8e0885557579914e61d1e2d58
Author: Patrick Lawson <pl@foursquare.com>
Date:   Tue Apr 22 14:44:41 2014 -0400

    Fix up resource/source relative paths in jars

commit 1a5c8cd8e005ac044e72d6488515d3288ae166d4
Author: Patrick Lawson <pl@foursquare.com>
Date:   Tue Apr 22 13:40:50 2014 -0400

    Fix sorttargets

commit d3a470b92ad9acc13ba767505391eef383546e18
Author: Patrick Lawson <pl@foursquare.com>
Date:   Tue Apr 22 13:30:25 2014 -0400

    Fix Filter Task and tests

commit c1143cded70ebf7bc08e48682e4ec152469ce583
Author: Patrick Lawson <pl@foursquare.com>
Date:   Tue Apr 22 12:43:49 2014 -0400

    Fixes for what_changed

commit 0f3eea5af29704e141380cda6def4e8dfd384d25
Author: Patrick Lawson <pl@foursquare.com>
Date:   Mon Apr 21 22:14:07 2014 -0400

    A bunch of fixes, prints, and comments

commit 1bb1dca4a66ab3524a6f56eaf4044972eb7ca37e
Author: Patrick Lawson <pl@foursquare.com>
Date:   Mon Apr 21 18:59:53 2014 -0400

    Lots of small fixes. Nasty hack to fix Artifact/Repo

commit 71950e3de949d1ddb6315ee453ac35eddd530dc6
Merge: 8ebdef9 0053330
Author: Patrick Lawson <pl@foursquare.com>
Date:   Mon Apr 21 13:57:50 2014 -0400

    Merge branch 'master' into build_graph_refactor

    Conflicts:
    	src/python/pants/targets/jar_dependency.py
    	src/python/pants/targets/java_thrift_library.py
    	src/python/pants/targets/scala_library.py
    	src/python/pants/tasks/args_resource_mapper.py
    	src/python/pants/tasks/builddictionary.py
    	src/python/pants/tasks/bundle_create.py
    	src/python/pants/tasks/jvm_compile/scala/scala_compile.py

commit 8ebdef97b76bdcee3dfeabc3f614041d81280fea
Author: Patrick Lawson <pl@foursquare.com>
Date:   Mon Apr 21 13:48:24 2014 -0400

    Adapt chroot/test_builder to non-target PythonReq

commit 04bf1f6cacf31f7232ee9f935f9e25d290c78228
Author: Patrick Lawson <pl@foursquare.com>
Date:   Fri Apr 18 17:58:35 2014 -0400

    Add python library initial payloads and params

    Comment out circular deps in BUILD files

commit 5326eda72301ee31957dab2ac1a9f090144404b9
Author: Patrick Lawson <pl@foursquare.com>
Date:   Tue Apr 8 12:02:37 2014 -0700

    Fix up some BUILD files, wrap Fileset.*globs

    Java unit tests now run

commit 24c84511e6473161e84f70e47e5b669a2279f892
Merge: c26c4aa b86644d
Author: Patrick Lawson <pl@foursquare.com>
Date:   Tue Apr 8 11:59:08 2014 -0700

    Merge branch 'master' into build_graph_refactor

    Conflicts:
    	src/python/pants/commands/goal.py
    	src/python/pants/tasks/builddictionary.py
    	src/python/pants/tasks/idea_gen.py

commit c26c4aac9190b6c848d016b4545d8b3727bf1069
Author: Patrick Lawson <pl@foursquare.com>
Date:   Mon Apr 7 17:39:28 2014 -0700

    Initial fixes from big merge

commit 0449afa90bcdac15da9698fcb232c9251b72de07
Merge: b5afe7f 36f5bcb
Author: Patrick Lawson <pl@foursquare.com>
Date:   Mon Apr 7 17:32:42 2014 -0700

    Merge branch 'master' into master_am_patch

    Conflicts:
    	3rdparty/python/BUILD
    	src/python/pants/BUILD
    	src/python/pants/base/BUILD
    	src/python/pants/base/build_file_aliases.py
    	src/python/pants/cache/BUILD
    	src/python/pants/fs/BUILD
    	src/python/pants/goal/BUILD
    	src/python/pants/ivy/BUILD
    	src/python/pants/java/BUILD
    	src/python/pants/net/BUILD
    	src/python/pants/reporting/BUILD
    	src/python/pants/scm/BUILD
    	src/python/pants/targets/BUILD
    	src/python/pants/targets/python_library.py
    	src/python/pants/tasks/BUILD
    	tests/python/pants/BUILD
    	tests/python/pants_test/python/test_thrift_builder.py
    	tests/python/pants_test/targets/test_python_target.py
    	tests/python/pants_test/tasks/test_jar_create.py

commit b5afe7fd2e2d5b9c777343f3bc2deb62be8813ef
Author: Patrick Lawson <pl@foursquare.com>
Date:   Mon Apr 7 17:10:55 2014 -0700

    Apply changes from bg13
Move TargetDefinitionException to pants.base.exceptions
Add exceptions target.  Don't force synth target SourceRoot
Fix jarmapping, remove old debug code
Fix sources reference in python_binary
Fix python thrift path relativization
Guard against sources=None
Disable apache thrift artifact caching

It seems to be broken for codegenned python artifacts
Fix is_internal that snuck through merge
Another is_internal fix
Remove last is_internal
Clean up cruft
Clean up a bunch of cruft, comments, and dead code
Giant cruft cleanup and unit test hacking