rework grammar to have 'statement' concept

'statement' can be a command or control structure (e.g. 'if/else' or 'while'
loop). A 'script' is a list of statements, and statements can be chained with
logical or control operators.
can parse if and while
Add failing tests for partial lines
Add support for testing continuable parse errors

When catching a parse error, retry parsing from `err.offset` using the
"continuationStart" rule. If this parse passes, parsing should be retried when
there is more input to parse.