Internal refactor for Promise support
This release is largely an internal refactor of the batch/queue/retry subsystem introducing asynchronous abstractions (primarily Promise support). Includes a minimal Promise polyfill for continued support in older browsers.