Change `Daemon` state handling, rename to "signal"

This renames the `Daemon` state to signal and removes the public
query methods. This is a better name because the value represents
the last command or signal that was sent to the daemon. It doesn't
reflect it's current state. The public query methods of the
daemon's state are not needed outside of the daemon, they are only
used internally. The state of the daemon can be determined via the
`running?` boolean.

This also changes when the work loop checks for signals. This is
now done just before the loop iterates. This way we check for a
new signal and then immediately check if the state has changed.
Previously, the work loop would check for a signal, be stopped,
fetch one last job and then exit out of it's loop. This isn't the
preferred behavior, thus this change was made.