Regard those nodes that do not respond as unavailable
Detach watchers from loop only when they are attached

A watcher of connection socket is somehow mistakenly detached but rest
in @watchers when another watcher is detached.
 Specify serializer and define method :respond
Define method :respond statically
Use IO.select to wait for response because of simplicity of code and compatibility with ForwardOutput
Combine recv_with_timeout into send_data to disable nodes
Add ForwardOutputResponseError, and do not raise errors when no response has arrived
Remove debug log
Output response log
Rename config param

receive_response_timeout ->
wait_response_timeout
^^^^
Add comments about serialization type of the response
Refine error message about different ack
Refine message when no response
Add comments about checking if a watcher is attached