Commit 1.2.0

Changes:

• Major Changes to the Reflection System
    - Removed all instanceOf and baseType functions from all classes that inherited from Class / Object
    - BaseType from classes can now be found inside the Type object which can be retrieved from getType still
    - Type objects are now pointer and thus are allocated on the Memory Manager's memory block.
    - Reflection operators found in G_Type.h and G_Operators.h that require Type pointers to them do not clean up the memory. However other operators do properly allocate and release memory.
    - Removed TypeFactory for creating types. Type now has a static method to create a type and a static method to free memory of a type.

• Major Changes to the Math System
    - Vector2 and Vector3 and Vector4 are mostly implemented. They are not complete however and still require a lot of testing.
    - Matrix4x4 is implemented but requires a lot of testing.
    - Matrix3x3 is barely even started and requires more functions and testing.
    - Quaternion is mostly implemented but requires a lot more testing.

• Added a new system for Entity Component.
    - GameObject is implemented (for now) but still requires testing.
    - Component is implemented (for now) but still requires testing.
    - Transform is barely implemented but has fields for Position, Rotation and Scale.
    - All GameObjects can be instantiated properly through the GameObject static methods or GameObjectManager static methods.
    - All GameObjects have their memory properly managed so far.
    - GameObjects and component serialization system have been properly added in. (Using PugiXML). See G_IXmlSerializable.h for more info.

Todo
    - Implement the Screen class and a ScreenManager and begin making proper calls to GameObjects/Components