Sound queue

@BrettASwift 

Some cleanup of the sound driver, fixed a different bug, but most relevant to you: made it so that
stopAllSoundInstances also clears out the sound queues (which should help with the problems
you're seeing when resetting the game).
Yeah, as long as `this.queue$` is initialized somewhere else. Using `[]` allocates memory for a new array and what was in `this.queue$` becomes garbage. Setting `length = 0;` keeps it using the memory allocated when it was initialized.