EMI: Add volume/balance support to Poolsound/Track

Add volume and balance support. If a track is already playing, update
the values via the mixer accordingly.
EMI: Add comment and fix special handling in Imuse

Add a comment about the input/output range of:
Imuse::setPan (0 ... 127)
Imuse::getPan (-127 ... 127).

The value is stored internally as 1000 * input range
(0 ... 127000), so a value of 6400 is not possible:

int getPan() const { return (pan != 6400) ? 2 * (pan / 1000) - 127 : 0;
}

Changing to 64000 which roughly corresponds with a balance of +/- 0.
EMI: Implement sound-panning for EMISound

Implement sound-panning for EMISound and add a comment to document
the input range of EMISound::setPan.
EMI: Implement IsSoundPlaying

IsSoundPlaying is needed for the ambient sounds in EMI. It needs to
return true during playing to avoid a premature lua call to free_sfx
and it needs to return false once the sound is finished to allow the
transition to the next ambient sound effect.
EMI: Correct cacluation of sound position

In GRIM the position, direction and the roll of the camera is set via
gluLookAt but in EMI the camera is steady and its view is adjusted via
matrix rotations.

This patch adjusts the calculation for EMI and refactors the code to
do the calculation in the separate function Set::calculateSoundPosition.
That function will be used for implementing the positional sounds in
EMI.
EMI: Implement/enhance LUA sound calls

Enhance functions:
- Lua_V2::PlaySound: make usage of volume parameter
- Lua_V2::PlayLoadedSound: make use of volume parameter

Implement functions:
- Lua_V2::GetSoundVolume
- Lua_V2::SetSoundVolume

Implement the sound positioning in:
- Lua_V2::PlaySoundFrom
- Lua_V2::PlayLoadedSoundFrom
- Lua_V2::UpdateSoundPosition
Merge pull request #766 from chkr-private/sound-fixes

EMI: Music and sound effect enhancements