fix issue where application tests would sometimes not run.

@yiding caught this.  When using -freshInstall and -freshSimulator, sometimes
xctool would fail to run application tests.

The problem was that... when killing the simulator launchd jobs, it
wasn't waiting for them to actually die.

Tested manually with Facebook's application tests.
bump to 0.1.4
[xctool] BufferedReporter to prevent interleaved output of concurrent operations
[xctool] parallelize run-tests
make ReportMessage take a list of reporters instead of using globals

Having the global list of reporters is holding us back in PR #51.
@yiding is parallelizing test runs, buffering their reporter events
until the test is finished, and then flushing all the reporter events at
at the end.  In this case, we need the events from ReportMessage(...)
to feed into the BufferedReporters intead of sidestepping it and going
for the globals.

Tests pass, and via manual testing verified that reporter messages show
up correctly.
Merge pull request #51 from facebook/yiding/improve-run-test-perf

Add option to parallelize running of unit tests
Merge pull request #54 from facebook/fpotter/no-globals-in-report-message

make ReportMessage take a list of reporters instead of using globals
adding a test to verify that the TextReporter plumbing works.

It just pumps events through the pretty and plain reporters to verify
things don't crash.  Pretty lame, but it's better than nothing.  We'll
add actual verification later.
move FakeFileHandle into its own file.

This is was previously in Reporter+Testing.h
ReportMessage becomes ReportStatusMessage w/ optional begin & end

Sometimes we want to announce the beginning and ending of a long running
task - e.g. collecting build settings via -showBuildSettings, installing
an app in the simulator for app tests, trying to search for a target
via -find-target.

With ReportMessage as it was, to announce the begin and end of
something, we'd have to write multiple lines. e.g. --

```
[Info] Doing some thing...
[Info] Finsihed doing some thing. (100 ms)
```

Instead, we'd prefer to have the "finish" message write over the "begin"
message so that we first see...

```
[Info] Doing some thing...
```

... but when it finishes, the line gets rewritten to be ...

```
[Info] Finsihed doing some thing. (100 ms)
```

This changes ReportMessage() to ReportStatusMessage(), which like the
original, writes 1 line of output via the text reporter.

But, for things that have a begin and end, use
ReportStatusMessageBegin() and ReportStatusMessageEnd().  The former
will write 1 line of output, the latter will rewrite that 1 line of
output.
changing some ReportStatusMessage() calls to use the Begin/End versions.

For the task-oriented call sites of ReportMessageMessage(), let's switch
to using ReportMessageMessageBegin() at the start of the task and
ReportMessageMessageEnd() at the end of the task.

Did some manual testing with -find-target and app test running.
announce that we're collecting build settings when xctool starts.

^^^, and print the duration.  This will save people a lot of confusion -
no one understands what xctool is doing during the long hang before
it starts building/testing.
use a relative path when printing the 'Found target ...' message.

It just makes the output more pleasant.

Tested with...

```
~/xctool/xctool.sh -find-target TestProject-Library-OSXTests build
```
Merge pull request #55 from facebook/fpotter/status-messages

Support for status message events that have a begin and end.
adding LaunchXcodebuildTaskAndFeedEventsToReporters()

... which knows how to launch an NSTask that's spewing xcodebuild
output, and then push that output to the reporters.
TitleKey should be defined as 'title' and not 'command'

copy/paste error :-(
renaming 'build_tests_temp' to 'Tests'

... mostly for cosmetic reasons so I can see...

```
=== BUILD-TESTS ===

  xcodebuild build Tests
    TestProject-Library / TestProject-Library (Debug)
      ✓ Check dependencies (56 ms)
```

... in my terminal instead of ...

```
=== BUILD-TESTS ===

  xcodebuild build build_tests_tmp
    TestProject-Library / TestProject-Library (Debug)
      ✓ Check dependencies (56 ms)
```
let's have most of our xcodebuild calls go through the same function...

It will handle sending the 'begin-xcodebuild' event, running xcodebuild
while feeding all the events to the reports, and following up with the
'end-xcodebuild' event.
when xcodebuild fails, print the same error message xcodebuild would show.

Previously, we'd tell you nothing.  Now we'll show something like...

```
=== CLEAN ===

  xcodebuild clean ProjectsWithDifferentSDKs
    OSXLibrary / OSXLibrary (Debug)
      ✓ Check dependencies (50 ms)
      ✓ Remove OSXLibrary.build (1 ms)
      ✓ Remove OSXLibrary.dylib (1 ms)
      ✓ Remove OSXLibrary-Prefix.pch.pth (1 ms)

    iOSLibrary / iOSLibrary (Debug)

  xcodebuild clean Tests
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Failed to build workspace Tests with scheme Tests.
Reason: Scheme "Tests"Tests is not configured for running.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

** CLEAN FAILED ** (986 ms)
```
fix bug where clean action wasn't cleaning targets set as build for test.

In xctool, we have testables (targets added ot the 'Test' pane of the
scheme editor), and we have buildables for tests (targets added to the
'Build' pane in the scheme editor but with 'Test' checked).

For the clean action, we weren't cleaning the latter (targets marked as
build for test).

Also, might as well unify that logic in XcodeSubjectInfo since we're now
using in the build-tests and clean actions.