Resolve #63 canvas cannot receive the focus so some events must be attached to the window
Fixed a whole bunch of cross browser issues
More cross platform fixes, URL.createObjectURL seems to be the best way to handle preloading from ie, ff, and chrome