Update `Worker` to work with `Server::ConfigData`

This updates the `Worker` to work with the `Server::ConfigData`.
Overall, the worker works as it previously did. It takes a
connection and config data, and when run, reads the request,
runs a service handler and writes a response. The biggest
difference is that it now looks up a route via the config data and
then runs the route, passing it the request and the config data
logger. Previously, it would get the handler class from the host
data and then have the host data run the handler class, passing
the request. This is part of switching to the new server logic.
The new `Server` will run this `Worker` similar to how the old
server logic runs the old worker now.

This also adds proper unit tests for the worker tests which
basically weren't done for the old worker logic.