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.
Merge pull request #181 from gurok/331_get_position

Common: Corrected return value for GetPosition at start of stream
Engine: Refactored Character_FaceLocation

Separated the concepts of facing a direction (FaceDirectionalLoop) and a
location (FaceLocationXY). Migrated main direction facing code to
internal functions (FaceDirectionalLoop and FaceLocationXY). Added
validation to the externally visible Character_FaceLocation. Tidied up
the order of functions.
Engine: Corrected spelling of orthogonal

Ortogonal -> Orthogonal
Script API: Implemented eDirectionNone

Used the definition of ChangeRoom (SCR_NO_VALUE) to derive a value for
eDirectionNone, a constant to represent no direction or no change in
direction.
Script API: Implemented Character.FaceDirection

Implemented the Character.FaceDirection scripting command.
Engine: Removed limit of 50 script modules

Replaced the existing MAX_SCRIPT_MODULES arrays with vectors. Most
of the conversion involved replacing static array sizes with .resize
in game_file_read_script_modules. Some fairly minor changes to
DoRunScriptFuncCantBlock were made to work around the way vectors
pack bools in STL (no way to obtain a reference).
Merge pull request #183 from gurok/331_max_script_modules

Engine: Removed limit of 50 script modules
Merge pull request #184 from gurok/331_face_direction

Script API: Implemented Character.FaceDirection and eDirectionNone
Common: Corrected spelling of separate

Seperate -> Separate
Common: improved extended WFN font support

WFN format permits having same symbol data (item) being used for any number of characters. Furthermore, the items may be stored in any order and non-sequentially (with some auxiliary data in between). It is unknown if there are any fonts created which took advantage of this opportunity, but it is valid case that should be handled.
Another problem is that the previous versions of AGS did not make any safety checks when loading or using WFN data. Because of this some font-making utilities could produce wrong format that would still be accepted by the engine. Unfortunately, there are already at least few games using such fonts (notably: "Heatwave" by Scavenger). They work with old engine simply by luck (bad characters not used, or do not use memory beyond main buffer).

This commit modifies the way WFN fonts are loaded, providing support for all possible format usage. Additionally it detects format errors and corrects bad characters, when possible.
Common: removed unused code

This code was left after some experiments, by mistake.
Merge pull request #185 from gurok/331_separate

Corrected spelling of separate