Move off of EMMA and onto JaCoCo.

Summary:
Added `--jacoco` option for enabling JaCoCo for code-coverage.
`buck/buck-out/gen/jacoco/code-coverage/index.html` gives the detailed
code-coverage analysis

Test Plan:
Ran the unit tests with command - `buck test --all --jacoco --code-coverage`.
Don't output null values from buck.py json.

Summary: This saves us 10 MB of parsing garbage in `buck project`.

Test Plan: Unit tests, sandcastle
Reset the executable flag on `sh_binary` outputs

Summary:
Our zipping code doesn't preserve executable (or any other) file
permissions, so fetching executables from cache leads to a number of
"Permission Denied" errors for the genrules that try to execute them.
Hack `ShBinaryRule` to always set the executable flag on its output.

Test Plan:
Integration test included. Confirmed that this integration
test fails if the changes in this diff are commented out.
Fix change in intellij 13 which left us with a ton of top level modules.

Summary: Hide all non-top level modules by default.

Test Plan: unit tests, ran buck project, verified only 1 top level module
More explicit error messages when `ANDROID_SDK` etc. are set incorrectly.

Summary:
I accidentally had `ANDROID_SDK` set to the empty string.
This gave me a really confusing error message:

```
  java.lang.RuntimeException: /Users/bgertzfield/src/fbobjc was not a directory when trying to find sdk.dir
```

This clarifies the error message and adds tests.

Test Plan: Unit tests included. `ant unit` passes.