Add support for optional soundfx location specification for map event,
if not used map event location is used.

Part of issue #415
Make reset() only stop playback of looping sound.

Make play() to increase sound ref to prevent unload of currently
playing sound and then unload on finishing playback of sound.

Closes issue #415