Add XML output for code coverage.

Summary:
Emma can generate any combination of html, xml,
and text output.

If we want to parse coverage data at some point, it
might be useful to include the xml output.

Test Plan:
Updated the existing unit test; ran manually and
verified that the xml file was created and contained
sane data.
bin/buck should only invoke `git` if a `.git` directory is present.

Test Plan: Manual testing.
Added 'annotation_process_only" option

Summary:
Task #2348896 requires separating the annotation processing
step from the rest of the build.  This adds that capability
to buck.

The javac compiler supports a '-proc:only' option that will
process annotations without generating .class files.  Using
'annotation_process_only=True' in BUCK adds that option.

Test Plan: - unit test modified to try it
Create an FAQ for Buck.

Summary:
Initial questions for the FAQ:

  Why doesn't Buck support Windows?
  Why is Buck built with Ant instead of Buck?

I thought we should openly address some of the "Cons" listed on:
https://gerrit.googlesource.com/gerrit/+/57a4d597cd1111ebabf9bbf495ecd45324e7acdd
Remove EchoCommand from JavaBinaryRule.

Summary: I don't think we should announce that a JAR was built by default.

Test Plan: Sandcastle builds.
Add links to "Discussion Group" and "Report a Bug".

Test Plan: http://localhost:9811/
Documented shorthands for build targets from the command-line.

Test Plan: http://localhost:9811/concept/build_target.html
Document how to tell Buck where the Android SDK/NDK are.

Test Plan: http://localhost:9811/setup/install.html
The Android SDK should not be required when building a pure Java project.

Summary:
Instead of throwing `NoAndroidSdkException` as part of the
buildup to create an `ExecutionContext`, only throw
`NoAndroidSdkException` when `ExecutionContext.getAndroidPlatformTarget()` is
invoked and the Android SDK has not been specified by the user.
This way, a `Build` can create an `ExecutionContext` and run its course
without the creation of an `AndroidPlatformTarget` as a requirement.
This will make it easier to use Buck for a non-Android Java project.

Also changed `NoAndroidSdkException` to be an unchecked exception,
as it is not recoverable. This helps eliminate a number of catch blocks
in the code.

See https://github.com/facebook/buck/issues/7.

Test Plan:
As follows:
    unset ANDROID_HOME
    unset ANDROID_SDK
    rm -rf local.properties
    buck build buck