A lot of stuff

Error reporting mechanisms changed,
parser now partially builds an AST, scanner makes errors easier to
follow, and new tests developed.
Grammar rules file added for AST nodes.