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.
Lexer, Parser, Typesem: Logging refactor.

* Refactor/Add some logging on boot.
* Make all loggers public.