Drop support for IE6
Refactor `messenger.onmessage` to support more interface
Use `global` instead of `window`