Add a JSON formatter

For #159 

The formatter was easy.

I also thought about the deserialization process and added TB2::Event::Generic to act as a bucket for the deserialized events.  This avoids the user needing a mapping of event types to classes which avoids having an event class registry.

This would be really neat as a replacement for TAP as the communication channel with the test harness.