Engine: D3D9 captures screen from back buffer instead of front buffer
WIP commit
Fixes related to previous commit
Script: SCMD_CALLOBJ permits arguments of 'plugin argument' type

This fix adds missing permission for runtime values of "plugin argument" type to be passed to the function, expecting object pointer. "Plugin argument" is technically a 32-bit value received from plugin, that may be cast to a pointer (e.g. C-string). This is not safe on 64-bit platforms, but there's nothing we can do at the moment (plugin interface must be completely rewritten to achieve compatibility).
Revised interface for building multiple platforms
Engine: tidying game configuration

* In GameSetup struct changed chars to bools (where appropriate);
* Renamed several variables to better reflect their meaning;
* Made engine_init_screen_settings() function be called only once, before trying to create a gfx driver for the first time.
Engine: log out user's device resolution and supported gfx modes
Reimplemented letterboxed-by-design game mode.

Previously I misunderstood the meaning of the letterbox option in the game properties. It appears it was used to create letterbox mode as a part of game design.
This letterbox-by-design is now applied simply by making AGS pass higher resolution to the graphics mode initialization procedure. This works only for 320x200 and 640x400 games (they appear as 320x240 and 640x480 respectedly, with black horizontal borders).

This feature itself was designed in a rather awkward manner, and its future is unclear, but we leave it be for compatibility with older game projects.

This technically reverts commits:
91513cd9bb0b831d865f5b1553cacd35a86fc759
078ec5e6e3030c489c96a5b05d3a9529b97c36e9
Engine: fixed speech config option

Was broken by dfd272a5453b7438177141135dae38049e64aef1
Further revised build platform classes
Merge branch 'develop-3.3.1' of https://github.com/adventuregamestudio/ags into editor_platforms
Merged changes from master
Script API: implemented GUIControl.ZOrder property
Modified order of arguments in Stream::Seek() to be same as in fseek()
Script API: implemented File.Seek() and File.Position property
WIP to make dat file from editor
WinSetup: removed MFC dependency
Engine: restored support for old defintion of 320x200 games

This fixes very old (pre 2.56 at least) AGS games which used a different property value for 320x200 game resolution.
The correct behavior was previously broken by b08134492adb78a08d14a04c6b801f88530328e1
Engine: log loaded data version
Common: Corrected return value for GetPosition at start of stream

The previous code would never return a stream position of 0.
Replaced with a direct call to ftell.