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.
The call to `response.text` can throw a number of exceptions. This blocks the auth flow, even when we don't really care what the body says. We could change this to `response.content`, but that isn't necessarily better, as it can still throw a good number of exceptions.