Better support of the spec

* web worker
* Window.postMessage and Worker.postMessage
* Events queueing
* Improve browser compatibility for setOnMessage
* When targetOrigin to "*", the origin on the
* event object is "null"
* Allows message ports to be pass through a
* user agent
* `MessagePort.start` dispatches events
* asynchronously
* Message.encodeEvent
Sample to pass a port from a grand parent window to a grand child iframe
Create sample project for web worker