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), and in using Crafty.load when no file types are supported.

Other than the max number of channels, there are no breaking changes to the audio API.  I set the default to 7, but we could raise that if more simultaneous sounds are common.

I didn't add any unit tests to this set of changes, but did make a little "audio playground" and verified that the various play, pause, stop, and mute functions worked correctly.

*e:* Rebased to fix an off-by-one error in setChannels when reducing the number.