- added pure virtual function `Component::clone`, so that each time when you change back to the former state using FSM, the component will be initialized as the user has added to the state while defining the state. Also it is handy as far as user may want to do some work in the destructor of the component such as when you remove the rendering component from the entity, then user might want to `removeChild` the sprite from the scene graph so that it would not be rendered any more.

 - removed all removeComponent function I have added in the previous commit and renamed all deleteComponent functions back to removeComponent

 - fixed a bug in Entity.cpp: `fsm` should be initialized with NULL

 - added a big bock of TODO for your consideration