Separate preload matching from MemoryCache

This is a reland of https://chromium.googlesource.com/chromium/src/+/bb924e1897f5b4c67325dbfbdf2441e7f0686d53
which is reverted due to performance regressions.

This change decouples preload matching from MemoryCache lookup. With this change,
preload matching is done for ResourceFetcher::preloads_.

This is the first step and part of the second step in the design document[1].

1: https://docs.google.com/document/d/1oq8ixPnaDxuAlKUTRQ3WoYHlJenVkzNU9xnkuZX_dWM/edit#

BUG=652228

Review-Url: https://codereview.chromium.org/2871233002
Cr-Commit-Position: refs/heads/master@{#472421}
11 files changed