[CacheStorage] Use QueryCache everywhere

This CL consolidates many code paths around the new QueryCache method. This CL:

1) Optimizes QueryCache in the case that only one lookup needs to be performed
2) Adds vary checking (and ignore_vary support) to QueryCache (previously was only in match)
3) Changes Cache::Delete to use QueryCache
4) Changes Cache::Put to doom rather than call Delete before inserting
5) Changes Cache::Match to use QueryCache (via MatchAll)
6) Adds unittests for all query params
7) Adds layout tests for all query params
8) Removes the RuntimeEnabledFeature for the ignoreQuery option

As a consequence of using QueryCache everywhere, options are fully supported and tested.

For reviewers: the good stuff is in cache_storage_cache.cc, most of the rest is testing.

BUG=631978,426309,499216,482256,520784

Review-Url: https://codereview.chromium.org/2242883002
Cr-Commit-Position: refs/heads/master@{#413487}
22 files changed