Add a Promises A+ compliant implementation
Shift promise logic around to conform with DOM spec

Though the spec is still a work in progress, the recommendations have
been implemented for better compatibility.