function createPromise() {
    return co.call(this, fn.apply(this, arguments));
  }
Wrap the given generator `fn` into a
function that returns a promise.
This is a separate function so that
every `co()` call doesn't create a new,
unnecessary closure.

@param {GeneratorFunction} fn
@return {Function}
@api public