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).
`decode_content` is `False` by default as far as I can tell.

A single call to `response.read` would buffer the whole response body in memory, which is very undesirable, so we would have to end up with:

```
while True:
    chunk = response.read(amt=65536)
    if chunk == "":
        break
```

Which is (a) a lot more code, (b) a magic constant. I feel like using `stream()` is way cleaner, and the performance difference will be negligible.