Rework audio loading system

Move audio object creation to audio.js.
Make some code more memory efficient and do some extra checks in for-in loops
Audio is no longer required, game will play if audio loading fails

Catch errors for cross domain XHR requests (typically found when runnign locally)