Allow configuring a `runner` per host

This allows hosts to configure their own `runner` for handling
service handlers. Sanford provides a `Runner` mixin for defining
custom runners. This provides the required interface and hooks
for adding custom logic.

This allows extensions of Sanford to insert a custom `Runner`, for
use in the normal processing of requests. It also provides the
ability to use a different `Runner` when manually running a service
handler (like in tests) than what is used when a server receives a
request. This was already being done by the `TestRunner` but is now
a more formalized concept. Overall, this provides a more control
over running service handlers in Sanford's stack.