prefix "pgm" test with "parser/"
move reader.sml to lib, up version from tiger2
wip: pos refactor
wip: pos refactor

fix col num -- start at 0 not 1
refactor val decl parser to imperative-style
refactor data decl parser to imperative-style
refactor (some of) expr parser to imperative-style
consolidate log functions
consolidate peek functions in expr parser
delete unused function
consolidate expected functions
consolidate more calls to expected
replace `raise SyntaxError` with call to expected

also replace `raise Empty` with `raise CompilerBug...`
pull stream and token processing to module-level

Also add (probably too much) commentary