Stop exposing forth.Parser.

Also, start exposing everything non-private from forth.machine.
Add compile mode (distinct from immediate mode)

You can now define new words, which stores their tokens in closures that
get added to the machine's self.words dictionary. This fulfills the
long-running desire to be able to do:

```
: STAR 42 EMIT ;
: BAR STAR STAR STAR STAR CR ;
: BLIP STAR CR ;
: EFF CR BAR BLIP BAR BLIP BLIP ;
```

...and have it actually work! In the current implementation, one must
also `: CR 10 EMIT ;`, because reasons, but that's pretty okay.
Add a simple REPL to the Forth machine.

Not the best REPL ever, particularly since raw_input prevents us from
eating the carriage return before it gets echoed (which would be
necessary for correct behaviour, i.e. outputting the results from Forth
directly after the user input). Nonetheless, this is sufficient.