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).
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
Merged changes from master