Beginning of a test suite
Minor refactor

Having separate binaries ensures that the environment is clean between
tests. Need to add a little bash harness to call the various tests and
output information though.
Improve base test class

- Catch check exceptions and report them as failures
- Setup a basic logger so internal logging will show up in ouput
Do basic config variable init earlier

We want tests to have access to them without actually init'ing the
subthread.
Add a processed() call for subthread testing

This allows us to know when the protocol function has returned.
Add processed hook to TestBackend, fix inject

Inject now waits until the protocol has been written, read, and
processed.
Call a hook on tag update cycle completion

Taglist then uses it to force sync when a full barrage of ITEMS calls
has come back in. Works on startup and when requested (i.e. :refresh /
C-r)
Enable completion for categories and user tags
Add config validator test

Not sure if this is totally anemic and should test every specific
validator or be left as is, just ensuring that when a validator fails
its value is properly rejected.

Definite room for expansion.
Use new hook mass unloading
Defer _all_ graphical logging
Eliminate config-managed alltags

Instead of issuing the .die() calls to Tag() objects, they can use the
hooks. This has a side-effect of eval_tags being quicker to respond to
tag changes.
Sort Tags() after a reset has occurred

This was working on some computers before, but only because a sync()
event may occur while the tags are empty, waiting for the update. So
don't leave it up to chance now.
Cause individual Tag sync when TagCore gets first item

This is an optimization for startup and for other reset actions like
changing filters.
We don't need to handle selection re-add anymore

Since we moved protection to the client side, selection won't just
disappear anymore.
Whitespace
Config switch_tags should take strings, not Tag objects
Fix DELTAGS config change hooks
Changes to CantoCurses.tags should cause eval_tags()
Add config function test

Tests hooks getting called, switch_tags, successful config change.

Should probably be expanded to cover the config options that c-c doesn't
honor (that are just relayed to whatever) and tag options, but for now
core functionality is good.