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