First version of an AST

First, non-working version of an AST. This breaks the build!
Don't merge yet, I need to work on it more. Pushing this code
for initial feedback and review.

* Introduct an AST data structure
* Prototype modify parser to produce an AST for expressions
Fix the build
Continue AST
Initial implementation of symbol table
Continue AST. Fix bad yacc indices.
Fix EOF in symbol.py
First complete version of AST. Lots of bugfixing.

All needed AST nodes constructed. Fixed various bugs due to wrong
yacc indices. Refactored and aligned grammar and ast files.
Eliminated bad semantic checks. Entire testuite passes.
Restructure Type hierarchy. Fix Array Initialization.
Heavy Parser refactoring & some AST refactoring.

Standardize grammar presentation in Depth-First style. Standardize
construction of AST nodes (mandatory arguments in order of yacc indices,
then optional argument in order of yacc indices, then flags). All default
arguments of AST nodes are now resposbility of ast.py. Rename LlamaParser
to Parser. Rename debug parameter of parse() to verbose. Make Parser
return the AST. Move yacc parameters to main module. Fix bunch of typos.
Groom AST & Symbol Table code. Fix errors reported by pylint.
Realigned ast.py and parser.py
Merge branch 'master' into ast

Conflicts:
	main.py
	parser.py

Merge logger features.