add __defer which produces a { promise, fulfill, reject } object, promise! which takes a body including yields of promises and produces a promise itself. When used on a function instead of a body, it produces a promise factory. add to-promise! which takes a call and produces a promise assuming that a callback with the form `function(err, value)` is added on the end. These names may not be final.