Refactor Crafty.audio

This PR
* Refactors Crafty.audio to remove duplicated code, and allows checking of audio file support with a function instead of checking against an object.
* Changes how we play audio files, so that the same file can be played multiple times at once
* As a consequence, there is now a maximum number of sounds that can be played at once -- this can be set by `Crafty.audio.setChannels(n)`.
* Fixes a couple of bugs with the loading of audio files.  (Including #348)