Don't build test targets when running, archiving, or profiling.

Summary:
This reduces unnecessary build times by avoiding compiling and linking
test targets only while building for tests.

Test Plan:
Generate workspace, confirm embedded scheme marks test targets as
only building for analyzing and testing.
Added JSON style output for buck audit owner.

Summary: Added JSON output for the 'buck audit owner --json' command.
Generate test, launch, and profile actions into Xcode schemes.

Test Plan: Unit test. Examine generated scheme and compare against Xcode GUI output.
Highlight lines from test file in failed test stack.

Summary:
Because it makes it so much easier to find the failed line of
the test. I threaded the TestResultsFormatter through from TestRun, to
get at the Console.getAnsi() value.

Test Plan: Write a failing test, see that the test file's lines are red.
GenAidl should always specify an output file.

Summary:
There is never a case where gen_aidl doesn't generate an output file. Without parsing the file itself,
we don't know the name, and we don't want to force people to adopt a naming convention. As a result,
the output file is a src-zip for use with javac.

Test Plan:
buck test --all
Also roll buck back to master, build the prod apps, roll forward to this diff and build again after a clean.
Implement a DaemonSlayer to kill orphaned daemons.

Summary: angrybuffy

Test Plan: Change timeout to 15 seconds, verify daemon dies after 15 seconds idle
Only show `brew install --HEAD watchman` if user is on OS X.

Summary: This fixes https://github.com/facebook/buck/issues/114.

Test Plan: Ran `buckd --kill && buck --version`.
Build gwt_binary with -Dgwt.normalizeTimestamps=true by default.

Summary: Taking Shawn Pearce's recommendation on https://github.com/facebook/buck/issues/109.

Test Plan: Retrofit an existing GWT application with `BUCK` build files and build it using Buck.
Change gwt_binary() to output a .zip file.

Summary:
As David Ostrovsky pointed out on https://github.com/facebook/buck/issues/109,
the output from the GWT compiler is a zip that does not have the standard .war
file structure (even though the argument to the GWT compiler is `-war`), so it
is more appropriate for the output to be a `.zip` file.

Test Plan: Retrofit an existing GWT application with `BUCK` build files and build it using Buck.
Only include targets in generated schemes when they're related to the workspace being built.

Summary:
Before, if an unused target was included in a project included in the workspace,
then it would be included in the scheme. That could break builds if the target
had dependencies that weren't also included in the scheme.

Now, they are only included in the scheme if they are "related" (see RuleDependencyFinder)
to the workspace Buck rule being built.

Test Plan: Generate workspace / scheme, confirm it now builds even if unrelated targets are in BUCK files.
Support for variant paths in project generator.

Test Plan:
Generate an Xcode project with a variant path resource,
compare with Xcode native generated PBXVariantGroup.
Make the src.zip generated by genaidl have a lower-case suffix.

Summary: Also make the GenAidlDescription return a GenAidl rather than just a Buildable.

Test Plan: buck test --all
De-dupe some code.

Test Plan: buck test --all
Speed up buck targets by not sorting transitive android resource deps.

Test Plan:
buck test --all
In fbandroid, time buck targets > /dev/null 2>&1
Before: ~41 seconds
After: ~29 seconds
Bash escape the empty string to "''".

Summary:
When running `buck test --all -v 2`, I noticed that the command printed
to the console was not copy-pasteable. Because the second argument to
`com.facebook.buck.junit.JUnitRunner` is often the empty string, it was
was not being printed to the console as part of the command, which is
why it could not be copy-pasted.

Test Plan:
Updated `EscaperTest`.
Copy-pasted the `java` command to run a test as produced by
`buck test --all -v 2` and verified that it worked.
Delete a build rule's metadata directory when it fails to build.

Summary:
A concrete failure case was reported in the wild:
https://github.com/facebook/buck/issues/109.

Test Plan:
Very straightforward repro base:
* Build a GWT app, verify the .zip file is generated.
* Introduce a breaking change and try to rebuild the GWT app.
* Verify that the .zip file, `metadata/RULE_KEY` and `metadata/RULE_KEY_NO_DEPS` files are deleted.
* Revert the breaking change so it matches the original rule key.
* Build the GWT app again.
* Verify that the .zip file, `metadata/RULE_KEY` and `metadata/RULE_KEY_NO_DEPS` files are restored.
Also ran `buck test --all` locally and verified that all tests passed.