Change the states class for simplier uses
Change the name of StateCell to AbstractStateCell.
Create a namespace StateCell around all concret states.
A State can be accessed with StateCell::myState() and not MyState::myState() (thanks to friend methods).
Will allow use to add function accessed with StateCell::myFunction().