Script: cope with old-style strings on stack

Fixed old strings usage on old-to-new string assignment and string equality operators
Engine: corrected RawDrawImageTransparent()

+ Picked out few more transparency value conversion algorythms
Editor: added few constants to built-in script header

* Using constants to define fixed array sizes.
* Also fixed array size for savegameindex[] script object.
Linux, Windows: threaded audio setting is read from config

Defaulted threaded audio setting to 'off' for Linux and Windows platforms. Optionally this setting can now be read from standard configuration file.

There were reports that threaded audio causes music stutter with certain platform/game combinations. Also, its current implementation is not compatible with Pamela lip sync feature.
Engine: fixed MYMOD::get_pos_ms()

MYMOD::get_pos_ms used irrelevant data to calculate current clip's playing time.

The problem is related to MYMOD::get_pos returning not the actual position, but the MOD/XM pattern "order" index, which, in turn, was a way to support backward-compatible behavior of the AudioChannel.Position property.

This might need a redesign in the future.
Engine: added more information to the several error messages

* Remember script position at which script functions were called, such as NewRoom, RunDialog, StopDialog and StartCutscene, and print that information if a mismatching call to functions of similar type is made at the wrong time.
* Print View, Loop and Frame numbers if any of these specify non-existing item when calling GetGameParameter() function.
Updated build version (3.3.0.1146)
Engine: introducing IGfxModeList interface

IGfxModeList is a simple interface providing means to enumerate through supported graphics driver modes.
Implementations available for Software and D3D9 graphics drivers.
Engine: rewrote automatic scaling filter selection

* New implementation is compatible with fullscreen mode;
+ Automatic selection can now be explicitly triggered by setting filter id to "max" in game config.
Windows: added "max" filter choice in winsetup
Merge remote-tracking branch 'origin/master' into release-3.3.0
Engine: corrected game data search routine

* Properly test if the command line argument is a path to actual file;
* Always store absolute path to game file.
Increased the allowed value range for SetMusicMasterVolume()

With the old audio system the music volume is calculated as a sum of master volume and room volume factor. The master volume was never allowed be lower than 60, and the room factor could boost the final volume by 150 units more. Therefore this was impossible to completely mute the music by using only master volume, while lowering room factor did not work for all cases.
One serious problem is that the room factor is individual for every room and reset when room is unloaded. The music volume gets updated on new room load and, even if the room factor can be corrected in room script, there may be a short period of time (depending on how much it takes for room to load) when the music volume can spike to max.

This fix allows to set large negative values in the calls to SetMusicMasterVolume() to compensate any possible adjustments.
This change is a workaround, made for people who import old projects too large to update the code to use new audio system.
Engine: alpha blending support for speech overlays
Common: fixed String's endless growth
1. Replaced ugly hack x with ugly hack y, which might help with window flickering.

2. Added catch for external exceptions when pasting text
Merge branch 'release-3.3.0' of https://github.com/adventuregamestudio/ags into release-3.3.0
Engine: picked out directional loop selection
Compatibility: <= 2.72 fix for missing "Up" loop

<= 2.72 games used "Down" directional loop in case "Up" loop was missing
Windows: write program dump in case of memory alloc failure