setImmediate polyfill

Based off https://github.com/YuzuJS/setImmediate, but with the
implementations for browsers too old to support ES6 features gutted.
Asynchronous firing of dispatch callbacks

so that users of this library can use callbacks, promises, etc. within
dispatch methods.