A Finite State Machine implementation.
Handles regisistration and removal of state definitions, which include optional entry and exit commands for each state.
Remove a state mapping.
Removes the entry and exit commands for a given state as well as the state mapping itself.