Bug 881047 Use Promise.jsm as implementation for promises

* Use Promise.jsm as implementation for promises
* Tests updated where necessary -- also tests added for testing importing as a jsm as well as API surface area when used as a jsm


### removed ###
* Promises no longer synchronous -- as such, `net/url#readURI`'s `sync` option has been removed
* Removed extending promises' prototypes via parametrizing `defer`, `resolve` or `reject`. 
* RequireJS and Browser UMD boilerplate (only CJS/JSM now)
* Updated documentation regarding what was removed