Better sound management

Encapsulate sound into some objects which are easier to manage,
and use smokesignals.js to fire events to notify when
sounds are ready.
Fix minification to include sound class files
Better handling for window visibility's effect on sound

Use visibilitychange events if available; window.onfocus/onblur if not.
Attempt to preload sounds
Put in workaround for audio looping on Android xwalk

https://github.com/crosswalk-project/crosswalk/issues/659
is the issue.

Rather than letting the runtime manage looping, do it manually
by listening for an "ended" event and restarting playback.
Add note to README about smokesignals.js