[1] In State::translate(), move item->action between this->exit() and next->entry(). I thank it is better.
[2] Add StateMachine::setOriginState(State *), allow user set the origin state later, so that we have can instantiate all state beyond constructor.
[3] Make an example of PlayState inheriting from VideoState, to tell how to use State.