Change sample SDK location to a more likely default.

Test Plan: http://localhost:9811/setup/quickstart.html
Make buck-out directory configurable in the environment

Summary: I can set this in the environment to enable out-of-source builds.

Test Plan: Did an out-of-source build.
Fix a stale comment

Summary: BIN_DIRECTORY_NAME doesn't exist anymore.

Test Plan: grep
Reset output key after executing a caching rule

Summary:
Not sure if this always happens, but I got into a state where a genrule
kept re-executing because

- It would compute the output key by sha1'ing the file, and caching the
  the result in memory.
- It would see that the sha1 didn't match the output key in the .success
  file, so it would re-run the rule.
- The rule was outputting a zip file, which means that it is
  nondeterministic because zip files include timestamps.
- Finally, it would recreate the .success file, using the cached (and
  therefore wrong) output key.
- The next build would do the same thing.

My hacky fix for this is to drop the key after running the commands that
execute the rule, but I have no idea if the policy of perma-caching sha1
values is causing other bugs in the tree.

As a side note, the practice of using raw sha1 values as cache keys
seems like a huge problem for distributed caching when we have
nondeterministic build steps (like building JARs).

Test Plan: Built.  Saw that the infini-rebuild loop stopped.
Include .png files when uploading documentation.

Test Plan:
Ran ./docs/publish.sh and ensured the file ended up in the
correct place.
Fix Buck so it returns a useful error message when attempting to build or test a rule in a valid BUCK file with an invalid rule name.

Test Plan:
unit tests,
ran buck test --num-threads 12 //javatests/com/facebook/reflex:reflex in fb4a and verified it had a useful error message
Build up the diagnostic message by hand because Java6 is rubbish.

Summary: It seems as if Java 7 introduced a sane toString for a Diagnostic. This provides a rough implementation for Java 6 users.

Test Plan:
buck test --all
Introduced compilation error, visually inspected output.
Fix JavaBinaryRule's metaInfDirectory input handling.

Summary:
Fix JavaBinaryRule to enumerate metaInfDirectory's files when
building the list of inputs in getInputsToCompareToOutput().

Also fix JavaBinaryRule's ruleKeyBuilder() to incorporate
metaInfDirectory.

Test Plan:
Run the following command twice within fbandroid and verify that the
second invocation does no rebuilding.

buck test //javatests/com/facebook/feed
Remove unused import.

Test Plan: sandcastle builds
Add kitch fork me ribbon.

Summary: It's a ribbon. That's kitch. That asks people to fork the project. I went with grey because there's no blue variant and I don't have photoshop.

Test Plan: See how beautiful the ribbon is.
Documentation fixes.

Test Plan: http://localhost:9811/
Adding --force when pushing to gh-pages seems to fix things.

Summary:
Previously, publish.sh was failing with complaints of:

   ! [rejected]        HEAD -> gh-pages (non-fast-forward)
  error: failed to push some refs to 'git@github.com:facebook/buck.git'
  To prevent you from losing history, non-fast-forward updates were rejected
  Merge the remote changes (e.g. 'git pull') before pushing again.  See the
  'Note about fast-forwards' section of 'git push --help' for details.

Presumably this is because I am doing some funny stuff with `--orphan`.
Using `--force` appears to fix things.

Test Plan: Manually tried this and it worked.
Move python rules into their own package

Summary: Continuing the process of moving bits of the code base into logical packages, this moves the "stuff" into its own package.

Test Plan: buck test --all
Propagate the use of BuckConstant.ANDROID_GEN_DIR throughout the project.

Summary:
There were some places in the code where the old buck-android directory
was still hardcoded.

Test Plan:
Sandcastle builds.
Test against https://github.com/bolinfest/pebble-apps/ and make sure
that a buck-android directory does not get created as a result of
`buck project` or `buck build`.
Stop excluding annotation-processor-generated files

Summary:
In compiler.xml, this excludes specific top-level folders in //buck-out
rather than excluding all of //buck-out.

This is needed because IntelliJ actually uses these files when it builds.
See the task for more background.

Test Plan:
- existing unit tests
- 'buck project', verify output visually
- 'buck project', verify that IntelliJ can build with jdperlow's diff:
  https://phabricator.fb.com/D789142
Add the location of the output file to buck targets --json

Summary: We need this to make BuildBot more sane

Test Plan: Unit tests
Don't require buildrules specified in no_dx to be in the deps transitive closure.

Test Plan:
Wrote unit tests
patched in D783457, verified it built