JS Overhaul

I decided to take a stab at encapsulating a lot of the `webm` implementation and try to clean up the JavaScript. I think this is a great project and would love to continue to clean it up and try to get some performance improvements in (canvas improvements, caching etc.).