Performance Improvements / Crash fix

This pull requests contains performance improvements for textured particles as well as a fix for IE9 where decoding the Base64 data would fail, in general, I've replace the calls to window.btoa with a custom implementation as browser results tend to differ when string's contain UTF-16 data, so this should avoid any further failures.

Also, some versions of Safari on Windows tend to not have the "Audio" Object, so they would repeatedly try to instantiate one in order to detect Audio support, resulting in extreme lag.