added a JobHandler and EventHandler mixins for defining handlers

Mix in on your handler classes - 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 mixins:
* a Runner class which exists to run handlers.
* a test job runner for running job handlers in tests.
* a test event runner for running event handlers in tests.
* a bunch of test helpers for testing handlers (and other things)
* a config singleton to handle configuration and settings