Fix http cache timeout units.

Summary:
Previously the code interpreted the config value as milliseconds
when it was actually supposed to be seconds. I also introduced a new
config value http_timeout_seconds separate from the existing timeout for
cassandra, which is more consistent with the other http_* options.

Test Plan:
Built some apps with buck, verified nothing fails with
http_timeout_seconds set to a low number.
Add $EFFECTIVE_PLATFORM_NAME to output folders.

Summary:
Buck generated projects are outputting binaries in a target and
configuration specific directory, which is not platform specific. building
different platforms back to back without changing files will have Xcode
linking in the wrong binaries.

This adds a platform specific component to the directory name.

Test Plan: Clean derived data, build simulator, build device, build simulator again.
Only serialize test result events to a file.

Summary:
Writing all events to a file is overkill. Many large projects generate
huge numbers of events, and existing use-cases of
`buck test --output-events-to-file ...` are only concerned with test results.

This diff reduces the number of event subscriptions down to the bare
minimum -- the event containing test results.

Test Plan:
Patched buck on my dev server and checked that the test-related events were
still written to a file.
Construct the localToCanonicalRepoMap lazily.

Summary:
When I added the canonical repo names code, I made the local
names map eagerly cached. Unforunately, the `RepositoryFactory` doesn't
update its canonical map until after a `Repository` is instantiated.
Lazy caching works around this problem.

Test Plan:
Run buck against a toy example of a cross repo project.
Confirm that it fails in the `Parser` (where it current should) rather
than during `Repository` instantiation (where it did before this diff).
When this stuff is actually working, we will have real integration
tests.
Register the default flavour of an android_prebuilt_aar.

Summary:
Currently, it's hard to address these on the command line since the default flavour is not registered.
This fixes this issue.

Test Plan: buck test --all
Make IosTest implement TestRule.

Summary:
IosTest not implementing TestRule makes it hard to generalize over
test rules.

Test Plan: sandcastle
Do not print too much output when compiling asset catalogs.

Summary:
This updates the asset catalog compilation script to not print too much output
unless specifically asked to do so.

Test Plan: Run asset compiler script in iOS code using Buck
Expose flavours to the command line.

Summary:
Allow users to call flavours that `BuildRule` instances claim are legit from
the command line and as deps in build files.

Test Plan:
1. buck build //src/com/facebook/buck/model:model#src //src/com/facebook/buck/model:model
2. Inspect the source jar.
3. Marvel at human ingenuity.
Pipe the results of `command -v` to /dev/null.

Summary:
This suppresses unnecessary output from Buck.
Change Xcode upgrade check version number to 6.0.

Summary: Suppress warnings in Xcode.

Test Plan:
Rebuild Buck and then run `arc build` in fbobjc.
See warnings disappear in Xcode 6.
Fix checking if git repo has changes.

Summary:
Checking the local repo for changes with the --short option is flawed, as the user might have
changed his git status output, e.g. to:
[status]
	submodulesummary = -1
	short = YES
	branch = YES
in which case the branch is also visible with the --short option. Use --porcelain instead:
"Give the output in an easy-to-parse format for scripts. This is similar to the short output,
but will remain stable across Git versions and regardless of user configuration."

Test Plan:
Change repo, make sure buck thinks it's changed.
Adjust .gitconfig to above listed one, make sure buck doesn't think it has changes.
Downgrade resource not found error to a warning.

Summary:
This is a temporary hack to make sure some projects that use Buck continue to
build while they clean up.
Allow read only commands to be executed concurrently.

Summary:
Previously buckd enforced serialization of command execution
and the buck wrapper script spawned a new Java VM to run concurrent
buck commands when the daemon was busy executing, primarily to support
some recursive uses of buck. This change allows read only buck
commands (audit and targets) to safely execute concurrently with any
other buck command inside the buck daemon and removes the wrapper
script support for spawning new Java processes to run commands
concurrently. This is both faster (as new JVMs do not need to be
started to run the concurrent commands) and safer (as concurrent
read/write commands are prohibited). This reverts commit
145e88de1f2ce21cf081dac53a6bef26dcac0bfb, fixes race conditions
and adds tests to ensure they don't regress.

Test Plan: buck test --all
Add asm as a dependency of jacaco.

Summary:
Judicious grepping of the source of jacoco suggests that asm is a dependency.
This is something of a Schroedinbug --- I have no idea how this worked before,
since the dependency is in the bowels of jacoco.

Test Plan:
buck test --all --code-coverage --code-coverage-format xml --no-results-cache
python ./scripts/assert_code_coverage.py
Runs on the continuous build machines should go green.
Post an overflow event if watchman instance is fresh.

Summary:
Buck currently ignores notifcations from watchman that it's a fresh instance. If we see
this message, we should invalidate our caches. This is done by posting an overflow event.

Addresses issue #170, but I suspect there's still work to do.

Test Plan: buck test --all
Add some more logging around buckd/watchman.

Summary:
- verbose: Full JSON response from watchman.  (This could potentially
  affect behavior because I buffer the full response if verbose is on,
  but I think it's pretty safe.)
- verbose: All events posted to the file-change-events bus from
  WatchmanWatcher.

I cleaned up a little bit of existing logging as well.

Test Plan:
Did some builds.  Saw the logs.  (I created a .bucklogging.properties to
enable the verbose ones.)