Fix potentially buggy behaviors in audio implementations
Audio playing currently has some potential bugs, mostly related to stopping files while playing.
These may include
- Audio not stopping when playing is set (probably shouldn't be public to users)
- Old onEnd functions being called after starting and stopping audio
The audio example should be modified to better test for these behaviors.