Use try-with-resources to ensure resources get closed.

Test Plan: Eliminates Eclipse warnings.
Add in jar blacklist to prevent including files in jar files

Summary: When building a java_binary, all files in dependent jars are
merged into the output jar. This includes everything in the META-INF
directory. When things like cryptographic jar signatures are included
from dependencies like org.bouncycastle, the resultant jar will fail to
load.  Add a blacklist option to java_binary so that one can not include
META-INF/ and other files in the build.

Test Plan: Test runs
Make test coverage report with JaCoCo work in the wild

Summary:
EMMA coverage report invocation is working, but it is somehow flaky.
Test coverage report with JaCoCo is looking very promising but it
seems to only work for Buck project itself because some paths are
hard coded and other paths are customizable but still not exposed
in buck_common script as it's the case with broken EMMA.

Make hard coded path customizable and expose the paths in buck_common
so that folks in the wild can use it.

Closes https://github.com/facebook/buck/pull/173

Test Plan:
Clone Gerrit Code Review project and issue this command:
buck test --all --code-coverage --code-coverage-format html --no-results-cache
Enjoy the report in buck-out/gen/jacoco/code-coverage/index.html
Make sure test runner exits, even if the test class threw an exception

Summary:
If a test class fails in a static initialiser then the test runner hangs.
Closes https://github.com/facebook/buck/pull/141

Test Plan: `buck test --all`