Add helpers to get a better API

* MessageChannel.propagateEvent is used in the message event handler
* MessageChannel.postMessagePorts is used instead of window.postMessage
* to send ports
Clean test