Save all exceptions raised in a test

By default SenTestRun will log every exception raised, not just the
first one. otest-shim will now send all exceptions to the reporters.
Note that often only the first exception is useful, so the reporters
continue to only display the first exception.
Split concept of test failures versus test errors

In the current version of xctool there is no separation of tests that
fail (an assertion fails) versus tests with errors (a non-assert
exception is thrown). This change splits non-passing tests into the two
catagories.

Note that since we now keep track of the number of passes manually
rather than rely on [SenTestRun testCaseCount] the total number of tests
reported will be the number of tests actually run, not the number of
tests configured. It could be argued that the test error count should
also include the number of tests configered but not run, but for now it
doesn't do that.
Collapse test suites into a single suite

Multiple levels have test suites is of questionable value and creates a
headache in xctool. For example, when running tests in parallel the test
suite is emitted for each grouping of tests, even if they're within the
same suite.

This change will only emit the first test suite seen, ignoring any
others.
Move Reporters classes to Common

In a followup commit OCUnitCrashFilter will become a reporter so it can
receive all of the events that a reporter receives. To do this we need
to move the Reporters code to Common.
This commit changes the list to an NSArray and removes the 'All' keyword.

OCUnitTestRunner will soon require the entire list of tests to be passed
into its constructor. This will allow it to emit failures for all
remaining tests.
Add support for emitting results for all tests, even after a crash

Previously if a test suite/test case crashed we wouldn't get any output
for remaining tests. This change will instead emit test results for ALL
tests, even those that didn't get a chance to run. If a test didn't run
then we consider it a failure and label it with a message stating so.

To implement this, OCUnitCrashFilter was changed to implement the
reporter class so it can listen to all events that the reporters are
getting. With the help of the new OC*State classes it will keep track of
what the state of the test run is. If the test suite crashes for any
reason then OCUnitCrashFilter will take over emitting results that the
otest-shim would have emitted.
Merge pull request #148 from zlandau/teststate

Teststate