Build Nessy::Daemon::StateMachine from new module

I think as we keep adding transitions, we'll find that we need to change some details about our approach.  As you can see there is already quite a bit of duplication in the actions and command interface.

I also wrote a convenience method for executing events in the test.  We might want to just add that as a method on the state machine.