Engine: managed user script object support
Script: Compiler support for managed user objects

Allows the 'new' operator to be used with managed structs to create new
user objects at runtime.
Script: Built-in keyword and lockdown of extending structs

This introduces the "builtin" keyword, which modifies the behaviour of a
struct. Built-in structs cannot be instantiated directly and they cannot
be extended by non-built-in (i.e. user) structs. Also locks down
extending structs so that a managed struct cannot extend an unmanaged
one and vice versa.
Script: Allow #define to reference other macros

Support for recursive macro definitions. Tested against VC++ with:

 #define RED    GREEN
 #define BLUE   456
 #define GREEN  BLUE
 #undef BLUE
 #define BLUE  123

RED is 123 for both VC++ and AGS. Note: C# doesn't support #define
constants, or I would've tested against that.
Merge pull request #170 from gurok/331_improved_preprocessor

Script: Allow #define to reference other macros
Script: Disallow pointer members in managed structs

Until we have a way of managing their reference counts, pointers inside
managed structs need to be disabled. This can be introduced at a later
date without affecting syntax (we just remove the restriction added in
this commit).
Engine: fixed calculation of max vertical coordinate in letterbox mode
Merge pull request #171 from gurok/331_new_user_struct

Script: Limited Managed User Struct Support
Engine: Only escape "\[" once

It's not currently possible to display the sequence "\[" using a display
function, e.g. DrawStringWrapped. The engine consumes all \ before the
[, so that "\\\\\\\\\\\\\[" results in just "[" being displayed. This
corrects the escaping code for "\[" so that its behaviour is more
standard -- only replace the \[ once.
Update build version (3.3.1.1165)

Update the buld numbers for the 3.3.1 alpha 2 release.
Merge pull request #172 from gurok/331_correct_escape_open_bracket

Engine: Only parse "\[" once
Merge pull request #166 from gurok/331_alpha2bump

Update Build Version (3.3.1.1165)
Added Changes.txt
Updated build version (3.3.0.1164)
Merge branch 'master' into develop-3.3.1
Engine: cleaned up test units a little
Common: bit/byte swapping functions return result
Common: functions for conditional endianess conversions
Common: functions for reading/writing basic types from/to memory
Script: Disallow dynamic arrays inside managed structs

Dynamic arrays should be disallowed for the time being because they are
naturally pointers (duh).

Signed-off-by: Ivan Mogilko <i_mogilko@tract.ru>