Rename the time field of the Timer reporter to duration

duration is much more specific and descriptive
Don't have the Timer reporter by default

Minimize things
Pass in suite runner options to reporters

This is needed to make the Timer reporter API sane (right now it needs to be
instantiated with the slow threshold)
Make the Timer reporter take the slowThreshold via the reporter interface
Redefine clocks to be functions that return Dates

Instead of returning Unix timestamps. It seems more Javascripty. Next I
will change the reporter API to heavily rely on Dates so I wanted to do
this change first.
Pass current time to the done method of reporters
Pass current time to registerTests

This will reduce the need to have access to real time in reporters,
simplifying testing and making it easier to store and re-process
events.
Make the Summary reporter use times provided by the suite runner

Rather than an internal clock.
Add Timestamper reporter

It's a little utility to be used in the suite runner
Fix linter errors
User Timestamper in the suite runner

It's the neatest way I could think of to avoid adding a clock parameter to
pretty much every single function in suite_runner.js
Remove knowledge of wall clock time from the Timer reporter

Eases testing and makes the reporter nicer to use in general, more functional.
First draft of reporter API documentation
Add more documentation about the reporter API
Properly pass time stamp for suite marker messages
Use Combined to simplify Timer
Properly pass along timestamp for registerTests with SuiteMarker
Don't say haphazard

Interleaved is a more accurate word
Move error below finish

It makes sense to have the "lifetime" messages (start, finish, started* etc)
together.
Fix linter errors