more memory managment

  -- only lex is losing memory, via strings in lexeme_to_token
changing lex function name to lex_text
moving out header includes in the fauxy dir
typedef Tokens from List for easier code reasoning
changes list to not print error when list empty and pop, shift happen
first failing spec around parsing; switching to work on tree, for
statements
refactors lists to remove a little methods and switch to function-like macros everywhere
adds list methods for popping, shifting etc nodes, not just values