Properly release the connection to the pool on 304

When successfully doing a validation request, `cachecontrol` doesn't release the connection back to the urllib3 connection pool. As a consequence, the pool will wastefully start a new connection at the next request, and the existing connection will only be closed on garbage collection.

To handle this properly, two things need to happen:

* We need to consume and discard the body of the response (even if 403 responses are supposed not to have one, you cannot prevent a server from sending one);
* We need to call `response.release_conn()`.

This is very similar (but lower-level) as what requests itself does [when retrying after a 401](https://github.com/kennethreitz/requests/blob/master/requests/auth.py#L169).
I think `response.read(decode_content=False)` is a little better. As you mention in the comments, there shouldn't be any content. Assuming the vast majority of the time the response will be empty, reading it into memory shouldn't be a problem. If servers do end up sending large amounts of content on 304s, then we'll just return to using the loop.