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
Fix IDs order change for folder items when doing drag & drop
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.