Promise/A+ compliant library / ES6 Promise polyfill