Recycle the original connection pool

In the non-session case, the original code was leaking sockets because 'response2' would use another connection pool than 'response'. The original socket from 'response' would lose all references and be garbage-collected.

In the session case, the original code would open an additional connection because the original connection was never returned to the pool. This causes an indefinite hang if the connection count overflows any hard limits in the session adapter.

This patch also makes self.session and self.adapter unnecessary.