Pass async test AssertionError exception to Mocha

Exceptions are caught by gulp-mocha and translated into a gulp PluginError,
however, some are valid ones from an asynchronous Mocha test. If not passed back
to the Mocha runner the Mocha test fails from a timeout. It should at least
pass back AssertionError.

The extraneous PluginError kills the gulp task before Mocha finishes. It causes
gulp watch tasks to "finish" before the Mocha runner completes and causes
gulp-mocha to have a different output then Mocha (test fails from timeout rather
than AssertionError).

This commit calls the internal "uncaught" function of Mocha runner. There may be
a better way. However, it seems this is how Mocha's runner works, its just
gulp-mocha catches it.