VarDefs with types, correctly read from game.json and used for engine language

- VarDef types are restricted to string, float, integer and boolean
- VarDef names can be prefixed by '_' to indicate that they are reserved
- VarDef names prefixed by '_g_' are copied to/from subgames ("globals")
- Added I18N initialization in GameController using a LANGUAGE_VAR ("_g_lang")
- Added additional sanity checks to pseudo-properties parsing in i18n
Merge pull request #47 from manuel-freire/vardef-schema

VariableDefs read correctly from json; "lang" variable for game i18n