Use MessageChannel.js to support more browsers

Tests passing in Chrome and Firefox.
Use of webkitURL for Safari