added a JobHandler mixin for defining job handlers

Mix in on your handle class.  It provides the initialize API and
run/init hooks.  Also provides settings and callbacks API.

This includes some extra (some of it untested) stuff for supporting
the handler mixin:
* a Runner class which exists to run handlers.
* a test job runner for running handlers in tests.
* a bunch of test helpers for testing job handlers (and other things)
* a config singleton to handle configuration and settings