added stubs to scrollback buffer callbacks
added rect_set data structure
modified rect_set to handle an empty dimension
start of implementation of scrolling

working on the api callbacks necessary to support scrolling logic
use vterm VTERM_DAMAGE_SCROLL for increased efficiency

main I/O bottleneck was vterm_push_bytes which was being
too liberal about damage callbacks. now we just manually
flush the vterm damage whenever we are ready to refresh.
implemented primary_term_damage api call

now plugins such as aug-bg can make sure certain parts of the
screen stay up to date even when things are scrolled.
use aug_callbacks_init in api_test.c
added scroll callbacks to api test
fix memory leak

need to free term_win structures now that they have rect_sets
which allocate memory
added arbitrary scrolling up and down to term_win
fix typo: print src rect instead of dest rect
added some documentation for the new scroll related API changes