Minor taglist in tags -> is_tag change
Make curses tests output log to stdout
Add gui.working for testing

Instead of waiting for needs_refresh et. al. to be cleared, wait on that
and gui.working to make sure that it's actually done. This allows us to
wait until all of the refresh/redrawing is done, but still clear the
needs_* conditions before we run them (which allows them to indirectly
queue up another pass if necessary).
Update test wait to use gui.working
Make summarize + collapse tests functional
Fix missing import on exception
Tagcore script should include PING -> PONG

On refresh, it uses this to know when the old responses have stopped
coming in.
Set working flag earlier

We want to be able to use it with sync_requested to determine if the gui
thread is in progress, so close the window where they're both false.
Toss undead former selections faster

When preserving the selection, we keep items in the graphical Tag that
are no longer in the TagCore. That's fine, but we need to re-evaluate
that tag next time a sync is requested, despite the fact that the
underlying TagCore may not have changed.

This should make formerly selected items disappear faster.
Add selection preservation test

- Make sure that selections that disappear from the tagcore remain in
  the tag

- Make sure they are then eliminated when no longer selected and an
  update occurs
Update error box color