Update `Daemon` with start, stop and halt

This updates the `Daemon` with its start, stop and halt behavior.
When started, it will now build a `DatWorkerPool` that will be
responsible for handing work off to multiple threads. When stopped
the daemon will shutdown the worker pool using its configured
timeout. This will allow a `Qs::Process` to control a daemon. This
doesn't include the logic for pulling jobs out of redis and adding
them to the worker pool, it is just the start, stop and halt
behavior.