Implementing Promises as close as possible to the spec

Source https://github.com/domenic/promises-unwrapping

Implemented Promises are replaceable by the Firefox native Promises (Promise.all is missing in FF)