Completely hide the resolver from the promise

The resolver is now closed over in instance methods of the promise.
Avoiding Y.Lang.isFunction and Y.Array.each
Expose the resolver to the Promise() callback instead of passing it
bound functions