Update Promise

- Promises/A+ compliance
- basic tests
I believe we solved this in many of our Array prototype polyfils, e.g. https://github.com/Financial-Times/polyfill-service/blob/master/polyfills/Array.prototype.every/polyfill.js