Add `Server::ConfigData`, make `HostData` compatible

This adds `ConfigData` to the `Server`, which replaces part of the
role that `HostData` currently handles. `HostData` is the
"compiled" data from a `Host`. Similarly, `ConfigData` is the
"compiled" data from the server's `Configuration`. This is done
for speed because `NsOptions` is relatively (when 1-5ms matters)
slow in reading options.

The `ConfigData` is built when the `Server` is initialized and is
seeded by the `Configuration` data. It also handles looking up
routes given a name. The `Server` will use this to find the service
handler it needs to run for a request.

`ConfigData` will also be used by the `ErrorHandler` when an
error occurs. To handle `Sanford` currently using the `HostData`
but needing the `ErrorHandler` to also work with `ConfigData`, I
made their interfaces mostly compatible. This allows updating
the `ErrorHandler` to use `ConfigData` but not breaking the build
which uses the `HostData`. In this case, I didn't want to create
two error handlers, one that worked with `ConfigData` and one
that worked with `HostData`.

All of this is setup for switching out the old server for the new
one.
Merge pull request #114 from redding/jcr-server-config-data

Add `Server::ConfigData`, make `HostData` compatible
Create `WorkerOld`, copy of `Worker`

This is setup for changing `Worker` to work with the new `Server`.
This takes the current worker logic and moves it to `WorkerOld`
and updates everything using `Worker` to use `WorkerOld` instead.

I did this to free-up the `Worker` name but I also wanted to
preserve the diff from the old worker logic to the new worker
logic which will come in a separate commit. That's why I left the
old worker logic in `sanford/worker.rb`.
Merge pull request #115 from redding/jcr-move-worker

Create `WorkerOld`, copy of `Worker`
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.

Finally, this removes `version` from the summary logging. This
should have been done when we removed version as a part of a
request, but was missed.
Merge pull request #116 from redding/jcr-new-worker

Update `Worker` to work with `Server::ConfigData`
Add building a dat tcp to new server