Refactored evaluate assignment

Moved the code that evaluates an assignment into its own function.
Supplemental control statements for scripting

This implements "for", "break" and "continue" using the existing control
structures inside cs_parser.cpp. They are, after all, just ways of
paraphrasing other control statements. The for statement takes the usual
parameters, but they can be omitted. One caveat is that the for
statement cannot include variable declarations (e.g. int x = 0) for the
initialisation part, only assignments.
AGS.Native: set loaded game version on 2.72 project import

This lets some data reading routines to know actual format version they are loading. We switch back after game is imported to let drawing routines "see" latest game version.
In general this is indeed a hack, but the AGS.Native code is still such a mess, the proper solution would require to rewrite much of its contents, which is beyond scope of this fix.
Compatibility: < 3.1.1 GetLocationName() return space for nameless object
Linux: changed savedgame path to $XDG_DATA_HOME/ags
Linux: corrected BuildXDGPath()

This corrects previous commit (bb566df6f4f527cf474179dc064cffcf7e95f318) where "ags" subdirectory was appended only if XDG_DATA_HOME enviroment variable is not set.
Fixed parse error for long form assignments

This changes the way brackets are processed inside evaluate_expression
to fix long form assignments at the end of for loops (e.g. a = a + 2).
Also probably a better way of doing things all 'round.
Fixed import fixups not being moved with a chunk

AGS script has a concept of fixups. I believe it's to facilitate
importing global variables. Memory addresses of these fixups weren't
being altered when a chunk of code was yanked and subsequently written
elsewhere.
Hack for navigating the document tabs with Ctrl+Tab

This branch fixes this bug here:
http://www.adventuregamestudio.co.uk/forums/index.php?issue=475.0 -- but
it does so in a kind of hacky way. When keyboard commands are issued,
_dockPanel.ActiveContent, _dockPanel.ActiveDocument, etc. are *always*
set to the old active tab's value the first time Ctrl+Tab is pressed.
This code catches that case and finds the *real* active tab by querying
the panes to find the one with the focus.
Fixed crash when trying to auto complete an empty word after a define.
Scripting: Static extender functions

Scripting support for defining an extender function that exists as a
static method on an object. Syntax is as follows:

Module:
function AbsInt(static Maths, int value)
{
if(value < 0)
value = 0 - value;

return(value);
}

Header:
import function AbsInt(static Maths, int value);

The function can then be called as a static method, e.g:
int x = Maths.AbsInt(-3);
Issue: Function in struct, error msg

Provide a better description of what's wrong when a developer tries to
enter the following:
struct foo {
function bar ();
};
Updated build version (3.3.0.1158)
Merge branch 'master' into develop-3.3.1
Merge pull request #130 from gurok/bugtracker_tabbed_controls_and_keyboard_commands

Fix focus when navigating the document tabs with Ctrl+Tab
Merge pull request #132 from gurok/331_static_extender_functions

Scripting: Static extender functions
Merge pull request #131 from gurok/bugtracker_function_in_struct_error_msg

Issue: Function in struct, error msg
ScriptAPI: implemented Game.IsPluginLoaded()
Various bug fixes for the Go to Line feature

Fixed grammar ("Goto Line" -> "Go to Line...")
Corrected the minimum and current line number in go to dialogues (off by
one)
Made "Go to Line..." for the dialogue editor select the line to match
the script editor's behaviour
Removed the thousands separator from the "Go to Line..." number spinner
The number in "Go to Line..." is now selected whenever it receives the
focus
Reimplemented SelectCurrentLine() so it now works correctly with double
char line endings (chr(13)+chr(10)) and selecting the last line of the
file
This addresses concerns outlined in:
http://www.adventuregamestudio.co.uk/forums/index.php?issue=436.0
Merge pull request #133 from gurok/bugtracker_go_to_line

Various bug fixes for the Go to Line feature