Added a new mechanic to GameState::update and it's derivatives!

Now, the GameState::update virtual function will return an action back
to the game of enumeration type PostUpdateAction, the choices are:

 - DoNothing
 - Render
 - ExitGameState
 - ExitGame

If the update function returns DoNothing, no rendering takes place, the
game loop sleeps until the next event poll. If Render is returned,
GameState::render is called after clearing the screen to black, the
surface is then shown on the screen. ExitGameState pops that GameState
off the stack using, directly, Game::popGameState. If ExitGame is
returned, the game exits as soon as possible!