When a user is in an unknown state, push them to the start state rather than raising an error and locking them out of the application entirely.
Better description in message logged when an unknown state is encountered.
Add tests for new handling of unknown states in switch_state.