Add the `spawn` function for ES6 generators

It's very, very common to use ES6 generators at the top-level when you don't want to continue chaining promises, and you want any errors to be thrown. The key factor is that since *all* errors are suppressed, even language-level ones, it's too easy to forget to call done() when using generators since promises are more implicit now.

I'd say the most common case for ES6 generators is at the top-level that consume other libraries.

I will add more tests and be more thorough about this if this is at least approved to be merged. (I added a test within examples though)