Game manager (state machine) refactoring
Code Readability improvements
Move 'Result' functionality to general Event type
Update Event member variable visibility to allow inheritance
Add documentation and update state machine for new Event class
changeState() should also create a StateEvent
Remove exceptions; this information will be reported in events instead
Ignore depcache
Restore exceptions
Create separate GameState enum
Remove Event class
Update for new GameState enum