New forth machine -- this time, with tests.

Also, less complete because I took my time and got the parser right.

There's no real lexer in Forth because at the string processing level
there are only three character classes: whitespace, newlines, and
everything else. Worse, what a given word (aka "everything else") means
depends on what mode the Forth machine is in -- in string mode, it'll
just be a set of characters; in immediate mode it might be a word or a
number; and this depends on the mode-switching words that came before it.

Ultimately, the forth.Machine will have to be cleverer because the
forth.Parser cannot be.