Fix bug in assumption-violations reporting

Summary:
The `org.junit.runner.notification.RunListener` used in Buck hooks into a bunch of `test(Started|Finished|Failure|AssumptionFailure|Ignored)` methods and records state to share between them, which it then reports back to buck.

I added a feature where, if an assumption-failure occurred, it was appended to a list of failures on the assumption that the list was cleared each time.  That was wrong, and meant that if a test-class had a test-method in it that had an assumption violation, all subsequent test-method results would be marked as assumption-violation, with the same error:

```
lang=none, name="before"
test-1 pass => pass
test-2 pass => pass
test-3 av   => av
test-4 fail => av
test-5 pass => av
```

This fixes the bug by storing each assumption-violation temporarily, between calls to the various `test*` methods:

```
lang=none, name="after"
test-1 pass => pass
test-2 pass => pass
test-3 av   => av
test-4 fail => fail
test-5 pass => pass
```

Test Plan: Included a new test in a separate diff {D1449665}, which depends on {D1449389}
Test client disconnection.

Summary:
This change adds integration tests which verify that client
disconnections are correctly detected by Buck and cause build and test
commands to be interrupted.

Test Plan: buck test --all
Remember to recordArtifact() in OutputOnlyBuildRule.

Summary:
This was an oversight: it should have been done when OutputOnlyBuildRule
was introduced in D1447072.

Test Plan: Sandcastle builds.
Add "Buck Android Support Library" containing the exopackage loader

Summary:
- Create the directory com/facebook/buck/android/support to contain this
  and possible future bits of Android support code.
- Excluded it from ant, IntelliJ, and Eclipse, because they aren't set
  up to build Android code.  This stuff can only be built with Buck
  right now.
- SystemClassLoaderAdder is the core multidex installer.  In theory, we
  should be able to replace this with an alternative multidex
  implementation.
- ExopackageDexLoader just finds the exopackage jars, calls into
  SystemClassLoaderAdder, and cleans up stale odex files.
- DelegatingApplication and ApplicationLike are for apps that currently
  have custom Application classes.  They can convert their Application
  to an ApplicationLike in a secondary dex and use a thin subclass of
  DelegatingApplication as their real application type.

The support library can be built by running

  buck build buck-android-support
  cp `buck targets --show_output buck-android-support | awk '{print $2}'` path/to/my/project/libs/directory

Test Plan:
Incorporated this into an open-source Android app and saw exopackage
working.