EMI: Parse loop and start cues from .jmm files.
AUDIO: Increment total play time when decoding MP3 data.

This fixes seeking backwards in the case where playback hasn't finished
yet.
EMI: Implement synching of music tracks.
EMI: Implement fading of sound tracks.
EMI: Do not cross-fade music if no music track was previously playing.
EMI: Music sync value 0 means no synching.
EMI: Push also the iMuse state number to the state stack.
EMI: Parse the first parameter of ImPushState.

This fixes the credits music not playing in the main menu.
EMI: Pass a file path string instead of a file stream to SoundTrack::openSound.
EMI: Initialize EMISound instead of iMuse at engine startup.
EMI: Make callback FPS a constructor parameter of EMISound.
EMI: Free channels that have finished playing.
EMI: Move initialization of sound effects to EMISound.
EMI: Free the sound channel immediately if sound track initialization fails.
EMI: Replace asserts with warning when trying to change parameters of a sound track that doesn't exist.
EMI: Do not expose the sound handle in SoundTrack.
EMI: Lock when channel state is modified from the game thread.
EMI: Update _curMusicState also when state 0 is requested.
EMI: Respect balance and volume parameters when starting a voice.
EMI: Extract common functionality from EMISound's startSfx and startSound methods.