Add Renaming pass

Includes some changes to the AST to allow data (such as type
annotations to be added.)
Add Code Generation (no foreign or built-in)

With no foreign calls and no built-in functions or operators, (not
even basic stuff like addition), it's not possible to write code
that does anything, but code generation is now "works".