reporter-specific options and support for the xunit reporter to output to a file (#2)

(Rework of #1106 to merge cleanly onto master and to address PR comments.)

Support for generic reporter options and an optional .done() hook for reporters
to clean up before exiting.

The xunit reporter uses these hooks to optionally write output to a file when run
in node. By default it still uses console.log to keep support for running in browser.