Fix Error handling for generator

A generator raising an exception will now correctly emit an `error` event.
This can be used in unit test as the error event is now binded between the generator and its run context. 
this test gave me a very hard time. 
The error is thrown async (because `run` is async, `setTimeout(this._run.bind(this), 10);`) and there is no way it can be caught by an `assert.throws` or a `try catch`.
As you can see i had to tweak process and process.domain for not throwing exception, and revert back the original handlers.
This has to be done conjointly for process (when running mocha command) and for process.domain (when running gulp-mocha)