Better support of the spec

* web worker
* Window.postMessage and Worker.postMessage
* Allows message ports to be pass through a user agent
* `MessagePort.start` dispatches events asynchronously
* Events queueing
* When targetOrigin is set to "*", the origin on the event object is "null"
* Message.encodeEvent
* Improve browser compatibility for setOnMessage

[Fixes #1]
Sample to pass a port from a grand parent window to a grand child iframe
Create sample project for web worker