Introducing mocha.throwError for better async error handling

This `mocha.throwError` is supposed to be called by assertion libraries.

It will allows awesome diffs (like [this](http://visionmedia.github.io/mocha/#string-diffs)) to be shown even when running async tests is a browser like phantomjs.

It's an alternative to https://github.com/visionmedia/mocha/pull/278 and https://github.com/visionmedia/mocha/pull/942

I plan to send a PR to chai, with a mirroring change.