Modify runner and reporters to use JSON serializable results

The first step down the road to [turn reporters into separate modules](https://github.com/visionmedia/mocha/issues/492)

Extremely useful for writing CI systems as you can serialize the complete state of the world and let people view it in a local command line, the browser etc. using whichever reporter they want.  This would make https://github.com/visionmedia/mocha-cloud/pull/5 much simpler as it wouldn't need to be able to serialize circular data structures with prototype chains.

I've specified the resulting API [here](https://github.com/mocha-ci/mocha-result-spec) so you can read through the basics of what's changed in plain English.