Fixes and documentation to Promise
(Hopefully) fix cancel bubbling in Promise