`before` and `after` handler callbacks

This adds support for before and after handler callbacks.  The
difference between these and their *_init/run counterparts is that
these callbacks are intended to be run by the runner - specifically
only the SanfordRunner.

Use the normal callbacks if you want to add specific handler behavior
and need to test it.  These callbacks are meant more to customize the
behavior of `SanfordRunner` (since you can no longer configure your
own runner).  It is important to remember that these callbacks are not
run by the test runner.