remove unnecessary handler macro from events::raise_draw_event

After discussion on irc, it seems that this function doesn't
throw end level or end turn exceptions, and some play testing
suggests that removing the handler macros here is alright.
push end play exceptions out of play_controller::check_time_over
finish_turn() cannot throw end play exceptions, remove handlers
remove handler from finish_side_done

This function won't throw end level or end turn. game_event pump
will not throw these, although the SDL event pump may throw them
in response to keyboard / menu events.
push end play exceptions out of replay controller top level

This commit starts the process for replay_controller at the
play_replay_level function.
fixup playsingle_controller

If end_turn_exception propogates to the top of
playsingle_controller, there is no handler beyond that and the
program will terminate. If an end turn signal gets there, we
also will terminate. This commit adds an assertion failure with
a message clarifying what happened. It fixes up the commit:

"push end_play exceptions down one level in playsingle_controller"
push end play exceptions out of replay_controller::play_replay

Returns a "possible_end_play_signal" now instead. This also
required changes to the header in hotkey/command_executor. This
seems pretty minor, and could perhaps be refactored later.
remove unnecessary pure virtual function definition

This is overrided differently in playsingle, playmp, and replay
controllers, and never is it called abstractly, which is what
this virtual declaration would suggest.
push end play exceptions out of play_side()

This changes both the playsingle and playmp implementations,
but not the replay_controller implementation which is separate.