Added StateMachine class

StateMachine class is akin to OrthogonalState but without entry/exit
behaviour or transitions.
Also allowed for tightening up of SimpleState and its derived classes.