Less re-rendering with progress reporter

With a large number of small tests a significant portion of the testing time is simply re-rendering the progress bar, this only re-renders the progress bar if the progress has changed.
Support for environment with `global` and `window`

Node-webkit has a global `global` object, while the global `this` is the
`window` object. Overwriting `global` with `window` breaks a lot of
things.
Revert to previously defined onerror handler
closes #865: Disable timeouts when running under the debug
allow local modules to work as ui and reporters
Merge pull request #1267 from giggio/tryfixui1

Allow local modules to work as UIs and Reporters when running mocha globally
Merge pull request #1262 from jsdevel/disabling-timeout-when-debug-option-is-set

closes #865: Disable timeouts when running under the debug
Add --no-timeouts options (fix #1262, fix #1268)
JSON error objects for debugging. Add two tests for invoking done() with non-Errors
Merge pull request #1270 from panuhorsmalahti/jsonerrors

JSON error objects for debugging.
Merge pull request #1178 from jankopriva/revert-onerror

Revert to previously defined onerror handler
Updates contributor stats in readme. Fixes misalignment of column

Some of the columns in the contributor table were misaligned due to a bug in
git-extras/git-summary, see: https://github.com/visionmedia/git-extras/pull/236
Merge pull request #1159 from michalc/master

Support for environment with `global` and `window`
Merge pull request #1151 from Connorhd/patch-1

Less re-rendering with progress reporter
Fix diffs of circular structures (close #1198, fix #1179)
Strip commas from the JSON.stringify output before diffing
Add tests for #1182 (close #1182)
Cleanup #1267
Update history.md
1.21.0