- Most testing has been rewritten.
- API changes regarding getting a machine's current state and
transitioning to a given state with submachine states.
- Eliminated undesirable State entry/exit calls when transitioning to a
submachine state with common ancestor states.
- When exiting a SubmachineState, its machine's state is now exited as
well.
- After recently allowing for a State to be added to multiple
CompositeStates, reworked the order in which CompositeState
onEnter()/onExit() calls are made.
- Added new StateMachineEventListener callbacks.
- Added StateMachine parameter to StateMachineEventListener callbacks.
- Moved StateMachineEventListener callbacks closer to the point at which
the corresponding machine event actually happens.
- Updated StateMachine.evaluateInput() to once again allow null to be
evaluated as an input.  That was broken when SubmachineStates were
introduced.