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.
AST: Expand ListNode coverage.
AST: Introduce generic equality. Drop __hash__ from nameless types.
AST: Restrict inheritance of NameNode. Fix build.
AST: Ignore line position when testing AST node equality.

* DRY special case for __eq__ in NameNode.
AST, Parser, Type, Tests: Rename builtin_map to builtin_types_map.
Main, Parser: Fix typos.
Merge pull request #24 from Renelvon/newast2

Refactor AST hierarchy. Improve processing of user-defined types.
Merge branch 'master' into parser_test

 * Merge branch 'master'
 * Add lex tests for true boolean values

Conflicts:
	compiler/ast.py
	compiler/parse.py

Changes in newast2 branch conflicted with these changes due to the
following reasons:

 * __eq__ was already implemented in a DRY way
 * Large part of type module was moved to ast module
 * Parser's verbose parameter was implemented differently
 * Semantics of array type were changed
 * Semantics of variabledef type were changed