Move state history storage out of the States so that a StateTable can safely be shared by multiple StateMachine instances.  State history is now stored in a StateHistoryStorage held by a StateMachineDispatcher.