added changed_state handler: post event handler on state change,
in addition to changing_state handler, which is a pre event handler.
added some internal validation of parameters to weedout invalid input
added accessor: allowed_events: a list of events that are permitted give the  current state.
added accessor: can_transition(event_name): return True if the FSM can transition to the given event.