Many more fixes

All milestone requirements for Milestone #3 are implemented. All scan
errors caught, including run-ons.
There are some bugs, not limited to:
1. Incorrect line numbers on printing a token.
2. Incorrect line numbers on error tokens (particularly run ons).
3. Some unchecked cases, or cases that may not be correct.