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).
Why not just use `response.read(decode_content=False)` here? `Response#stream` is just a [generator written for the read method](http://urllib3.readthedocs.org/en/latest/helpers.html#urllib3.response.HTTPResponse.stream), as such, calling `response.read` will have the same effect but without a for-loop and unused binding (`chunk`). Also if you're really trying to eek out performance, I would pass `decode_content=False` so that no time is spent using zlib to decompress any body that is sent.