[#4] Allow support for state_listener
[#4] Allow support for state_listener

By default exit the OS process(!!) if a bad state transition occurs. But
if this behaviour isn't desired, then add support for the clients
specifying their own listener.

Closes #4

EDITD/runners