Separated user input functionality from Engine

- Separated user input functionality from Engine.cs (check UserInput
folder)
- Exported all properties that are in charge of managing game state from
GameFactory in a new class GameStateManager.cs (singleton)
- Added few new messages to Renderer.cs
- Minor syntax changes