Update Promise

- Promises/A+ compliance
- basic tests
Update Promise

- use setImmediate where available
- properly handle promises in Promise.resolve
- cache slice method
- separate polyfill from assignment (Object.defineProperty)
Update Promise

- optimize return of promise in Promise.resolve
- add iterable support for Promise.all and Promise.race
- change Promise.race to not resolve an empty iterable
Merge pull request #166 from Financial-Times/update-promise

Update Promise