new reporter executables for each of our reporter types.

This creates a new 'reporters' project, with a target for each of our
different reporters.

The new style reporter just reads JSON events from stdin, and writes
formatted events to stdout.

Each of the reporter classes and their tests have been copied over to
the new project.  Next we'll remove the old-style reporters from the
main project.

Test Plan:
Tests pass, manually testing looked good.
Reporter and ReporterTask have the same interface for publishing events.

This introduces the `EventSink` protocol which the old-style Reporter
and new-style ReporterTas both implement.  For both, we now use
`publishDataForEvent:` to publish events.

This also removes all instances where `handleEvent:` was called
directly.

This is going to make it easier to pull out the old Reporters entirely.
rename BufferedReporter -> EventBuffer

... and some other places that refer to buffered reporters.
-reporter must now reference a reporter executable.

... and -help will list reporters from `path/to/xctool/reporters`.

The old-style Reporter classes are still in the code, but there's no way
to invoke them.  They'll be removed in a later commit.
BuildTargetsCollector is an EventSink and no longer a Reporter

We're trying to kill 'Reporter' implementations in the 'xctool' project,
so this has to go.
kill RecordingReporter; using EventBuffer instead.

One step closer to removing Reporters from the xctool project.
No more FakeReporter; use EventBuffer instead.
removing Reporter + implementations from the xctool project.

All reporters live in the separate 'reporters' project now.
ReporterTests -> ReportStatusTests; this is more appropriate.