Fix and improve debugging of tunneled TCP connections (#2291)
When a to-client write failed, TunnelStateData::writeClientDone()
debugging said "from-client read failed".
TunnelStateData::keepGoingAfterRead() debugging did not differentiate
two key cases: zero-size read and Squid-initiated closure of the other
end of the tunnel. That "other end" was called "client", but it could be
the "server" end. Related `if` statements logic was difficult to follow.
TunnelStateData::Connection state was difficult to reconstruct when
debugging long-lived tunnels. These debugging enhancements were
instrumental in tunnel closure problems triage, but those problems
deserve dedicated fixes.
Debugging improvements aside, no functionality changes are expected.