debug output has colors! prep for static type-checking

the lexer now properly recognizes invalid escape sequences.
debug/error output uses ANSI escape sequences for colors.
the AST walking code is now in its own file to prepare for traversal.