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.
Why were `SEMI` tokens removed here but added on line 96?