`TestRunner`, dependency inject attributes on service handler

This adds dependency injecting attributes on service handlers
with the `TestRunner`. This allows passing more than just params
when using the `test_runner` test helper. The `TestRunner` now
takes a hash of args and it will pull out keys for params, logger
and a request. Any other keys in the hash will be used to try and
write their values to the service handler it builds. This allows
dependency injecting values when a handler is built.

This also changes `Runner` to no longer have an `init` and `init!`
methods. These were originally done when `Runner` was a mixin that
could be used and configured on servers. This is no longer the case
and they were only used by the test runner so there's really no
need to keep these methods.

This also moves the serializing of a response. It is now done
whenever the test runner builds a response, either from initing
or running the service handler, not just when its run. This makes
sure that when a handler halts in its `init!` or a callback, we
also try to serialize these responses to ensure they don't throw
any errors.

Finally, this adds unit tests for the test runner. Previously it
was only tested implicitly via the service handler.
Merge pull request #123 from redding/jcr-runner-dep-inject

`TestRunner`, dependency inject attributes on service handler
Rework `CLI` to use `ConfigFile, `Process` and `ProcessSignal`

This reworks the `CLI` to use all the new logic. It now expects
a config file path and builds a `ConfigFile` to evaluate it. The
server from the `ConfigFile` is then either passed to a `Process`
or `ProcessSignal` depending on the command. Sanford supports the
same commands it did previously: run, start, stop and restart.
This makes all of Sanford's old manager, host and host data logic
no longer needed and it will be removed in a future commit.

This also fixes an integration bug. The process was passing a `nil`
ip and port to `Server#listen`. This is invalid and will cause the
server to try to bind to an ip and port of `nil`. This is fixed
by compacting the `nil` values from the listen args the process
builds.