Modernize WebRTC with promises compatibly with hybrid.

Let me know if I missed anything. Leaving polish of legacy note to others.
There wasn't a need to change this - just a fallout of me getting carried away - so think restoring the original language is preferable. This PR will be large enough.