API Simplification
State enums now implement StateTransitionable and associate there action type and optionally a context type.
From the initial state a state machine can created by passing in a builder injecting closure for initialising transitions.
Transitions and handlers can no longer be modified after creation.