Some more cleanup, and possibly slightly better test logging.

This commit cleans up the JSON code a bit more, most notably removing
the use of Symbol identifiers.

Additionally, I've attempted to enhance the test reporting bits - there's now
new TaskEvents that model the groupStarted and groupFinished methods in TestListener.
These events will have the same task ID as TestEvents for each individual test, so
it's a good first pass at associating events to suites. Unfortunately, this doesn't
work perfectly with all of the test backends. Notably, the SBT reporter in Specs2 doesn't
send over a meaningful Selector with events - by default, it just sends over a selector for
the whole suite, which means there's really no way to associate a meaningful name for
test events produced by Specs2. This is a defect in Specs itself, so there's not much
to be done. It looks like the JUnit and ScalaTest reporters do the right thing with
selectors (and durations), and ScalaCheck is moderately acceptable as well.