Track attributes in fake_curses
Add indicator of pending updates to tag header
Loop gui_thread until no re(draw/fresh/size)s required
Record output of TestBackends
Fix bad pair referencing in fake_curses
Expand screen test to test :color
Strip more selection maintaining logic

- Was causing the gui loop to never terminate because every refresh was
  setting and unsetting the selection trying to maintain.
Theme + color fixes and tweaks

- If you have customized your format strings, you needs to subtract one
  from all color codes (i.e. %3 should now be %2). %1 should now be
erased as well as the default color pair is always applied.

- attron won't overwrite a color if given color_pair(0), so attroff
  needs to be called explicitly on color changes.
More screen init tweaks

This is for testing, mostly. Most of the time, the updates are triggered
by items that are arriving over time, but in a test environment with
rigid timing constraints and items pre-loaded, there are no subsequent
events to cause a refresh.
Reorganize test-screen

- Push startup into __init__ with some basic sanity testing
- Add some taglist checks
- Move individual command post-condition tests into functions
Stop locking on WINCH
Don't throw exception on improper theme %0
Modify "marked" style