WIP: Start on an OAuth RP include.js with a promises based API.

* Add an IFRAME channel that has the ability to communicate back to the parent window.

issue #1386
I'm guessing "No", but will this collide with the native browser "Promise" API (or potentially be super confusing to devs that we're naming this the same as a native API)?

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise