EntityFactory and header safeguards change

* Changed all header file safeguards from #ifndef #define #endif method to #pragma once (that's why all headers are changed in this commit)
* Add some brainstorming docs
* Add EntityFactory class
	- Requires a GameContext to be passed in ctor as the owner of the factory
	- Method for registering a creator function that creates an entity type
	- Method for creating an entity type, requires name and the entity which should be initialized
* Add EntityFactory to GameContext
* Add sample methods for entity construction
Change in SpritesheetCache

* SpritesheetCache now returns only IDs on load and create empty
* Spritesheet reference is retrieved only through getSpritesheet(handle) method
* Sweeping changes to conform to this new interface
* Change the delta time argument type in Actions from double to float
* Change the State type that is being saved from Spritesheet& to uint ID
* Remove logging in InputEngine in case of unprocessed event type