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
Create the intermediate directory if required