Fix how packaging rules consider their cache.

Summary:
Two bugs here.
First, java_binary didn't have a RuleKey since it didn't have an output.
Second, packaging rules should add their transitive deps to their RuleKey.

Test Plan: Tested repo in t2414455
Make it possible to override values in .buckconfig with .buckconfig.local.

Summary:
The idea is that .buckconfig should be a version-controlled file that is
shared by project members whereas .buckconfig.local should not be
version-controlled, and will contain user-specific overrides.

Test Plan:
Sandcastle builds.
Try defining [cache] locally as defined in
http://facebook.github.io/buck/concept/buckconfig.html
Introduce Buck daemon.

Summary:
Use Nailgun (http://www.martiansoftware.com/nailgun/index.html) to run Buck as
a server, allowing build files to be cached between runs.

See the new documentation (docs/command/buckd.soy) about how to take advantage
of this feature.

Test Plan:

1) time buck build buck
2) bin/buckd
3) time buck build buck
4) time buck build buck
5) check that the duration reported in the last build is significantly lower than
   the other 2 builds.
Remove `@Nullable` instances that should be `Optional`.

Summary:
Did a first pass clean up of things that are nullable and really should be optional.

Test Plan: unit tests
Fix the heuristic for finding the build tools directory for the ADT.

Test Plan: Comprehensive unit tests.
Switch IJ project level to java 7

Summary:
Time to migrate to java 7.
First step: allow us to use java 7 features in our IDE.

Test Plan: Ctl-F9