Pass `ServerData` to route, runner and service handler

This adds passing a server's `ServerData` to a route when running
it. The route then uses the `ServerData` to build a runner. This
changes `Runner` to require a server data and forces the
`TestRunner` to build one and `super` it to conform to this. This
makes the `ServerData` available to the runners and also service
handlers, which allows removing usage of `Sanford.config`.

Previously, runners used `Sanford.config` to default their logger
and service handlers used it to default their template source.
Since `Sanford.config` is going away, they needed to get this
data through their server's configuration.

This also makes a small change to runners to demeter their
request params. This is called by the service handlers `params`
method instead of it calling the request and then calling `params`
on that.

Finally, this adds more complete unit tests for `Runner` and
`SanfordRunner`.