Output statements

Again, unrelated branch name....

- `Literal` -> `IntLit`, since we have other variable types now (unlike microc)
- Refactored the test script
  - includes YACC output on failed tests now
- added support for `printf` and `println`

This'll be blocked on #50 then I'll do the merge, but please review what I changed.
X is reassigned to a string from an int (or did we decide that was ok?)
That's a test for the SAST once it's implemented, should not have been added here.