Custom display widget

Adds TerminalControl for handling actual display of output.

First pass simply encapsulates what was already going on in the code. Instead of using data binding to TerminalEmulator however, we explicitly hookup TerminalEmulator's screenchanged signal to the update slot in the TerminalControl. This will let us more effectively push updates to TerminalControl in the future.