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, insert logging info when we break from idle
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

in this commit we make request_control_change also do idle player switching,
we will see if this causes redundnancy in how :control and :droid are working
improve performance of :droid when sides are idle