- Added Abstract.h/c/def which defines the AST for the language.
  In a similar way to Token.def, Abstract.def should be the
  "database" for adding new AST nodes.

- Currently, all AST nodes "inherit" from HuASTNode. I prefer to
  keep the AST nodes as an interface with some repeated code instead
  of setting up complicated inheritance hierarchies in C.