Added `promise` support for stephide event.

If the event handler sets `event.returnValue` to a `Promise` object, the event will only continue once the promise is resolved/rejected.