Fixed #17552 -- Removed a hack for IE6 and earlier.

Thanks Aaron Cannon for the report.
Moving `patch_vary_headers` is a small performance optimization.

If this method returns before testing for the Accept-Encoding header, the response doesn't depend on Accept-Encoding, so it needs not be added to the Vary header. That's why it makes sense to put `patch_vary_headers` just before testing for Accept-Encoding.

(In fact, if the response already has a Content-Encoding header, a proper implementation willl have tested the Accept-Encoding header and called patch_vary_headers, so this doesn't change caching behavior in practice.)