Updated promise handling

makePromise now receives a function which has a signature which
complies with ECMA6 promises (i.e., the same asyncAction can be passed
to a Promise constructor (e.g., new Promise(asyncAction) ).