Pass interaction machine into switch_state and state creators directly so they have access to the IM and API.
Convert StateCreator.switch_state to return a promise.
Simplify InteractionMachine.state_switch now that StateCreator.state_switch returns promises.