Makefile: Update sourcefiles.
Typesem, Parser: Add type validation.
AST, Parser: Fix type annotations for variable definitions.

* Explicitly construct an Array type when definining an array.
* Fix bug where the Array type would be initialized with a list
  of Expressions rather than an integer.
* Construct a Ref type when defining a variable.
* Validate all these types.