Text input now visible while editing.

This rqeuired a few changes to get right.

The changes to cli.fs were minimal, in retrospect; and my hypothesis of how to
handle visual output was _almost_ right.  I failed to consider the case where
input text wraps when the cursor is on the bottom line of the screen, however.
The solution was to record the input field's screen location in a way that
scrolled with the rest of the display.

The cursor.fs module now has a concept of a "bookmark," set with setbm and
restored with resetbm.  The bookmark's job is to allow the CLI to restore the
cursor position to the beginning of the right-hand side of the gap buffer
without having to know the actual current location of the cursor.
Additionally, it's unaware of the necessity for scrolling.  The cursor module
implements all this logic, since it has all the data on-hand; however, its
functionality, i admit, does overlap somewhat with that of the tty module.  It
was a coin-toss as to whether or not to put this functionality in tty or in
cursor.
Demonstration of CLI

This commit provides an integration test of the CLI functionality.  I basically
stub out the keyboard driver, and slow it down to a speed which is observable
by a human.  You can actually see the cursor move on the screen, as though
downloading text from a 1200bps modem.

I love it when a plan comes together!!