don't crash if ~/Library/Logs/DiagnosticReports does not exist.

This was pretty bad - xctool would actually crash if this directory
didn't exist (meaning you had no crash reports on your system).

Fixes issue #11

Tested with...

```
./xctool.sh -workspace
xctool/xctool-tests/TestData/TestWorkspace-Library/TestWorkspace-Library.xcworkspace
-scheme TestProject-Library -configuration Debug -arch i386 -sdk
iphonesimulator test -only TestProject-LibraryTests
```
Merge pull request #14 from facebook/fpotter/dont-crash-when-there-are-no-crash-reports

don't crash if ~/Library/Logs/DiagnosticReports does not exist.
adding TOC in README
adding some notes about the Facebook CLA in README
make tests pass now that TestProject-Library has disabled tests.

In e071d39849, a new test class got added to the scheme but it's
disabled.  So, we'd expect the SenTest args to change.
let's call it v0.1.0 and you can print the version with -version

Homebrew requires versioning (see issue #8)
Add an archive action
Fix detection of when a build is needed with better git fu
if a target name included spaces, we'd crash when running tests.

This fixes part of issue #19.  The target name was "Mantle Mac Tests",
but internally we thought the target name was "\"Mantle Mac Tests\"".
xcodebuild's -showBuildSettings will quote target names with spaces and
we need to account for that.
sometimes 'run-tests' would fail with OS X logic tests.

otest-shim watches for the SenTestingKit framework to get loaded before
it does its swizzling.  In this case, the framework path we were
watching for was overly specific.

We were waiting for...
  '.../SenTestingKit.framework/SenTestingKit'
But, the image path was...
  '.../SenTestingKit.framework/Versions/A/SenTestingKit'

... and so we were never swizzling.

This is part of a fix for issue #19.
updating README.md with notes on workflows for contributing
fix otest-shim crash that can happen with multiple threads

Summary:
This fixes the crashes found by @bgertzfield.  If tests end up spawning
threads that write to stdout or stderr, some bad things could possibly
happen...

1) the emitted JSON could get corrupted since there was no locking or
serialization there.

2) 'test-output' events could get written outside of the 'begin-test' &
'end-test' boundaries.

Let's setup a GCD queue to serialize all of our events.  We'll always
use dispatch_sync so we can be sure the event gets written.
(dispatch_async would work fine in the positive case, but if the tests
caused a crash, we could lose whatever blocks were in the queue)

Test Plan:
Made some tests that spawned ridiculous numbers of threads that
constantly wrote to stdout.  Observed that I could repro the crash
consistently before I applied this change, and then observed it went
away afterwards.
Fix dead store and correct the comment to reflect the actual behavior.
autorelease the Options objects.
Addresses Issue #17: 'begin-test & end-test events should include test class & method names.'
OCUnitCrashFilter synthesized events should include className, methodName

otest-shim now includes 'className' and 'methodName' fields in
'begin-test' and 'end-test' events.
make json-stream emit 'begin|end-ocunit' events, regenerating JSONStreamReporter-runtests.txt
adding Reporter+Testing, some categories to make reporter testing easier.
Reporter for JUnit

Squashed from https://github.com/facebook/xctool/pull/13

Close the file and nil the file handle reference
Cleanup and formatting per @fpotter
Addresses Issue #17: 'begin-test & end-test events should include test class & method names.'
Combine all test suites into a single file.
Fixes buggy XML encoding discovered by @pipelineoptika
Indentation, use Reporter+Testing