Pass the correct client environment to DefaultPropertyFinder.

Summary:
In order to make the use of the Buck daemon transparent, Buck needs to
use the process environment when running as a single process and the client
environment sent by Nailgun when running as a daemon. These changes extend
DefaultPropertyFinder to accept an environment when it is constructed and pass
the correct environment to instances when they are created.

Test Plan: buck test --all
Fix lint errors and green the build. No logical changes.

Summary: Previous commits have introduced lint errors. Fix them

Test Plan: ant lint && arc lint
Introduce a strong type for Flavor

Summary:
Being able to use a Flavor as a key in a Map turns out to be useful. And we like our
strong types.

Test Plan: buck test --all
Added EnumTypeCoercer.

Summary: Added EnumTypeCoercer. Not wired into the two examples of why it would be nice: need some advice on how to do that. But the component works.

Test Plan: See two new tests in TypeCoercerTest.java
Use client environment when setting up ShellStep sub-processes.

Summary:
Represent client environment as ImmutableMap and use it instead of the
process environment when setting up sub-processes in ShellStep.

Test Plan: buck test --all
Disable test that fails when inotify watch limit reached.

Summary:
The DaemonIntegrationTest is run on the CI servers, which also have a bunch of other work
happening on them at the same time. This results in us bumping into the limit of inotify
watches, causing the CI builds to constantly fail. This reduces their value to us.

Temporarily disabling the failing test until we get a fix in place.

Test Plan: CI server presubmit run.
Fix a linting error. No logical changes.

Summary: There's a lint error. This fixes it.

Test Plan: ant clean default compile-tests lint && arc lint
Only generate the src-zip for gen_aidl

Summary:
Now that we've removed usages of genfile() when referring to the output of genaidl,
we can switch to only generating source jars.

Test Plan: buck test --all
Add a new 'pre-checkin' target to help keep checkins clean.

Summary:
Adds the steps required to make sure that the code and tests compile cleanly via ant,
since buck itself is a lot more forgiving.

Test Plan: ant pre-checkin
[ios] sort Xcode configurations

Summary:
Sort Xcode configurations so they are deterministic between
environments.

Test Plan: tests pass
Print "ASUM" for tests that have assumption violations

Summary:
Adds another type of aggregate test-case result for a test-case where some of the tests didn't pass due to assumption violations.  Before, these would show up as "PASS" in the console output, but now show up as "ASUM" instead.  This isn't critical, but it might help to make the output of `buck test` more intelligible.  Right now, it's quite confusing to see "PASS" for something that isn't actually passing.

```
lang=none, name=Before:
...
PASS <100ms  1 Passed   0 Failed   com.example.PassingTest
PASS <100ms  3 Passed   0 Failed   com.example.SomeAssumptionViolationsTest
TESTS PASSED
```

```
lang=none, name=After:
...
PASS <100ms  1 Passed   0 Failed   com.example.PassingTest
ASUM <100ms  3 Passed   0 Failed   com.example.SomeAssumptionViolationsTest
TESTS PASSED (with some assumption violations)
```

Test Plan: Integration test included.
Serialize events to a file with a command line option

Summary: Serialize all `com.facebook.buck.event.BuckEvent` events to a given file, using line-oriented JSON.

Test Plan: I'll include an integration test soon; getting this up early for comment.
Use client environment when running ExternalJavacStep.

Summary:
Previously ExternalJavacStep would always use the process
environment whether or not buckd was used. This change ensures that
ExternalJavacStep always uses the client environment.

Test Plan: buck test --all
Pass client environment to BuckConfig.

Summary:
Previously BuckConfig would always use the process
environment whether or not buckd was used. This change ensures that
BuckConfig always uses the client environment.

Test Plan: buck test --all