Previously we were locking the RealConnectionPool for all connection-related state, including cancelation. This changes the locks to be per-Connection, leaning heavily on thread-confined fields in RealCall, Exchange, and ExchangeFinder.