Add height/width and cursor handling to TerminalEmulator

TerminalEmulator now has height and width properties to define the
terminal size, which will be set by the UI.

Internal storage in TerminalEmulator has been changed to a list of
strings.  New lines are pushed to the end of the list, and old lines are
popped from the front and sent to any takers via the screenOverflowed
signal.

In order to handle putting data in this array, a concept of cursor
position was added.  Consequently, routines have been added for handling
CR/LF, and forward/backspace cursor movement according to VT100 specs.