In only the top line and the bottom line had to be updated, we were
updating the entire region in between as well! This clearly is bad.
So instead of doing that, just update the lines that need changing.
Thanks to Chris Jones for reporting the bug.
This should fix a lot of complaints about slow scrolling in vertical
splits. The idea is to update the display once at the end of a screen
write, rather than a lot of time during the write, which was the root
of the slowness.
It is possible that LayPauseUpdateRegion needs to be called in a few
more places, but this works for now for the tests I have done.
Revamp the display list (in works). The future changes are expected to add full
mouse control, and perhaps some other utility functions (e.g. detaching a
display, changing permissions perhaps? etc.)