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 #773 from inguin/emi-text-stack

EMI: Rework text stack handling
Merge pull request #766 from chkr-private/sound-fixes

EMI: Music and sound effect enhancements
EMI: Patch a typo in mot.lua

This caused issues with guybrush using his inventory while on the raft
EMI: fix attached actor handling in swamp

Time paradox is now playable.

- local _pos and _yaw values seem to be relative
to the actor where the current actor is attached to

- to accomodate this, Lua_V1::GetVisibleThings,
Actor::getYawTo and Actor::getSimplePuckVector should use
world coordinates
GRIM: Cleanup refreshDrawMode

Remove _refreshDrawNeeded and refreshDrawMode(), they have been unused
for years.
GRIM: Silence a comparison between signed and unsigned warning
EMI: save/restore layer pool

- this fixes one crash after savegame restore when
Lua_V2::AdvanceLayerFrame() was trying to dereference a non-existing
layer object
Merge pull request #776 from chkr-private/savegame-fixes

EMI: save/restore layer pool
WEB: update credits
ALL: update credits
EMI: Add some accessors to Actor
GRIM/EMI: Refactor GfxBase::startActorDraw
EMI: Rotate overworld sprites again
GRIM: Fix the engine description