Added a `Runner` concept, for running handlers and testing

This adds a `Runner` concept to Sanford that handles the logic of
properly initializing and running a handler. This adds the ability
to relatively easily test handlers (since Sanford controls
initializing) and also cleans up some of the code that handles
the `halt` behavior of handlers.