EntityStateMachine and other changes

 - added MVC 2012 project with sample usage code 
- added EntityState and EntityStateMachine in order to change components of entity easily
 - added deleteComponent with is the same as former removeComponent but changed removeComponent so that it does not delete, in contrast to deleteComponent, the allocated component from memory (it is necessary for state machine to be able to reuse the same component that was allocated during state creation)
 - removed Entity::refresh and after each addComponent, removeComponent, deleteComponent `world->refreshEntity()` is being called internally. This can be not optimal as multiple components can be added to the same entity in a row, but it can not be a bottleneck and it is more convenient for the use. There is no fear that user will forget to call refresh after adding or removing components.