report crashes that happen outside a test suite

Test Plan:

Running xctool on the included test generates a dummy test that shows
the crash.

```
  xctool run-tests -only CrashOnStaticInitExitTests -project \
    xctool/xctool-tests/TestData/TestsThatCrash/TestsThatCrash.xcodeproj \
    -scheme TestsThatCrash -sdk iphonesimulator6.1 -arch i386
```
Merge pull request #73 from facebook/yiding/fix-test-crash-reporting

report crashes that happen outside a test suite
use shared schemes for TestsThatCrash.xcodeproj
removing 'commonXcodeBuildArgumentsIncludingSDK:'

Instead of having a way to not return the SDK with the common arguments,
we'll add a function ArgumentListByOverriding that makes it easy to
override one of the arguments.
xcodeBuildArgumentsForSubject no longer calls commonXcodeBuildArguments

Callers will be responsible for appending the result from
`xcodeBuildArgumentsForSubject` with the result of
`commonXcodeBuildArguments`.

This is going to make a later change easier.
xctool should use the action-specific build configurations from the scheme.

Xcode's scheme editor lets you set a specific build configuration for
each of the actions (Run, Test, Profile, Analyze, Archive), but xctool
didn't know about these.  Instead it would default to 'Release' since
that's the default for command-line builds in most projects (from
http://d.pr/i/575l).

It seems like it would make more sense to just follow Xcode than
xcodebuild in this case.

By default, a scheme will specify Debug for the Run and Test actions, so
xctool's 'build' and 'test' actions will now default to the Debug
configuration.

Also by default, a scheme will specify Release for the Archive action,
so xctool's 'archive' action will default to the Release configuration.
can build workspaces w/ projects targeting different SDKs

xctool used to incorrectly assume every target in your workspace was
targeting the same SDK.  At startup, it would find the SDK of the first
target in your scheme, then assume every other target used the same SDK.
This meant that if you had OSX targets and iOS targets in your
workspace, xctool would fail to build because of SDK confusion.  (issue #12)

As part of this, we also have to remove the logic that would
automatically select the 'iphonesimulator' SDK for 'iphoneos' targets.
This has the downside that callers will now have to remember to pass
'-sdk iphonesimulator' when testing iOS apps, but the upside that
callers can actually build device/ARM versions of the test bundles.
This was inevitable - we will eventually have on-device testing.
fix issue where error message wasn't being shown for device tests.

When doing run-tests on the iphoneos SDK, the user wasn't being the
shown the right error message.

OCUnitIOSDeviceTestRunner didn't have the right signature for the
runTests method.
make testSDKMustBeValid pass.

It wasn't using faked xcodebuild output when calling
GetAvailableSDKsAndAliases(), and so it would sometimes fail if you
didn't have the right SDKs installed locally.
make sure PrettyTextReporter is in pretty mode when under test.

These tests where failing when run from the command line via `./build.sh
TEST_AFTER_BUILD=YES`.  The PrettyTextReporter was falling back to plain
mode since isatty() was returning NO.
for OSX tests, tests should be run from the project's directory.

For OSX tests only, Xcode will chdir to the project's directory before
running the tests.  If the test bundle is at '/a/b/b.xcodeproj', then
xcode will change to '/a/b' first.
setting up travis
setting up travis
setting up travis
setting up travis
testing travis
don't call synchronizeFile if output goes to socket
Merge pull request #79 from FabianFrank/stdout-socket

don't call synchronizeFile if output goes to socket
Adding support for dynamic formatters instead of a dictionary in Reporter.m
removing the ExportedReporter protocol

Instead of using the ExportedReporter protocol to mark Reporters as
being public, we'll use reporterName - if it returns a string, then it's
public; if it returns nil, it's private.

Also moving the class introspection that hunts for Reporter classes into
+[Reporter allReporterClasses] instead of +[Reporter initialize].  We'll
soon have a plugin system, and it'll be important that we postpone
scanning for Reporters until later in execution.