If a transition has null ToState, change to previous state.
StateTransition.GetHashCode does not crash if ToState is null.
Improved the way state transitions are built: use static methods properly named and with clear parameters, instead of havind several constructors with obscure results.
Updated example to take advantadge of it.