Fix some sync issues with sound

If a sound was loaded over a network, the sound wouldn't play
the first time play() was called. This was down to the sequencing
of calls to load() and play(), and how they interacted.

Simplified by ensuring that the 'ready' event can only be emitted
once. And by always calling stop() when play() is called.