Add a `Process` class for managing Qs daemon processes

This adds a `Process` class that contains all the logic for
managing a daemon process. This includes, starting, stopping
and hot-restarting the process as needed. The process can run the
daemon and properly daemonize the process so it can run as a
service. It also handles trapping all the signals so the daemon
can be properly stopped and restarted as needed. This will allow
running a daemon process through the CLI and also stopping and
restarting it through the CLI.

This includes some `Daemon` logic, but this is all temporary. The
`Process` manages the daemon, so it has to interact with the daemon
to implement it's logic. This logic will change as the `Daemon`
is implemented.