[#18] Adding exit event

Resolves #18 
- Create ExitEvent which can be triggered in any instance where the application should be exited
- Cleaned up application exit protocol around main game loop