Add scrollback support.

Switch terminal rendering to use ListView, splitting each row into a
TerminalLineView item.  This leverages existing ListView display list
optimizations when scrolling, and gives us fling and overscroll for
free.  However, the simple case of a single line scrolling requires
an entire screen rebind.

Added locking between I/O thread and UI thread to provide consistent
view of terminal state.  Snap to current upstream libvterm, which has
updated scrollback API.  Examine full cell style when building runs.

Address terminals using "keys" instead of indicies, since ordering
can shift.  Save and restore instance state to remember scrollback
position.  Avoid crashing after closing last terminal.

Remove unused callbacks.

Bug: 8332387
Change-Id: I06468d16ae8e1ff8ac79b7115c7cb3f9434b3c0d
11 files changed