Renamed enter/exit arguments of State ctor to on_enter/on_exit
StateMachine now passed into Transition.is_triggered calls

This allows a Transition to implement guards that use a
value stored directly in the SM or accessible from there.
Minor changes to the README