Refactor the Player view to use an abstracted Audio class

This makes it easier to add different backends.
Remove human_readable_time from the global namespace
Add support for streaming music in Firefox

Uses aurora.js + MP3.js to decode MP3s in JS-land.
Requires a custom webassets filter in order to build the JS assets.
Audio backends are now in their own files, and loaded based on capability.