Refactor the parser to be a class.

Previously we had each parser function accepting a state and a scanner
from the caller, and all of the calls shared the same values for these,
so it seems more natural to wrap the whole thing up in a class that can
maintain that state.

The 'state' parameter is actually no longer needed -- the CompileState
object was removed in an earlier commit anyway -- so the Parser just
wraps a Scanner.
Remove the compiler module.

It will eventually be replaced with a more flexible compiler driver
module built in dependency injection style.
Drop the test coverage minimum for the moment.

While we're rebuilding the test coverage is intentionally very low. The
tests will return once things are a little more stable.