Various improvements to the JSON code and test reporting bits

this feels like it will result in clients having to parse the thing to split `OnePassTest` from `testThatShouldPass` - do we have the info we need from sbt to make these two separate fields, or would the only way be to parse it ourselves? Still, parsing it in sbt-remote-control beats parsing it in every client...

https://github.com/typesafehub/activator-multi-test-framework is one way to figure out what each framework makes available.