define idle controller
recognize idle state when such a side's turn occurs

idle side taking control results in a public chat message about it,
and then an infinite loop which can only be escaped by an end turn
exception, with a 100 ms pause inside.

idle behavior determined by "play_idle_loop" function

disable end turn while idle
add option to set disconnected side to idle
add :idle command
add :controller command to query the controller status of a side
:control now handles an idle side by reverting it to human before trying to transfer

also, make :give_control dialog handle idle players correctly

request_control_change is the place to do idle player switching, this handles both
the :control command and the :give_control dialog.
improve performance of :droid when sides are idle
update changelog
create separate code paths for sp idle notification and mp idle notification

although atm they do the same thing
Merge pull request #106 from cbeck88/idle_controller

Idle controller