Major change. Type is now a class and every variable statement etc uses it instead of ValueType.
TODO: Some type comparisons are still done using ==, whilst this should work as the pointers are singleton it is ugly.
Very close to arrays now