AST, Type: Nodes now sport line info.

Conflicts:
	compiler/type.py
Parser: Decorate AST/Type nodes with line info.

Conflicts:
	compiler/parse.py
Parser: Refactor lexpos initialization from first token.

Conflicts:
	compiler/parse.py
Type: Add line info to error messages.
Type: On constructor reuse error, show previous definition.
Parser, AST, Type: Refactor lexpos initialization from another node.

Conflicts:
	compiler/type.py
Parser: Beautify line tracking; drop tracking of Program node.
Merge pull request #23 from Renelvon/lineinfo2

Add line tracking to parser. Add line info to errors of type module.
AST, Type: Move AST nodes concerning types to ast module. Simplify class hierarchy.
AST: Further refactor the class hierachy.
AST, Parser, Type: Explicitly embed a User node in TDef nodes.
AST: DRY class hierarchy. Group node interfaces.
Beautify code.
Main: Fix bad comment.
Main, Parser: Move verbose parameter to Parser initialization.
Parser: Redefining builtin types not a syntax error. Fix #11.
Tests: Wipe testfiles from spurious whitespace.
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, Type: Logging refactor.

* Refactor/Add some logging on boot.
* Make all loggers public.
First version of parser tests, with some testability modifications