Fix handler deadlock in corner cases with dead clients

This adds ReverseListenerThreaded to reverse_tcp and disables it by default. It is necessary in situations where a single "dead" client prevents the successful staging of other pending connections.

This also puts the input/output detection code of reverse_double into the connection thread (it already handles all connections as a new thread, but there is a chance of deadlock in the input/output detection).