stale-while-revalidate experimental implementation.

Simplistic implementation of stale-while-revalidate. See design doc at
https://docs.google.com/document/d/1DMCIMAKjyKeYiu69jlI5OsO2pGyAMb81XflYK4hxsNM/edit?usp=sharing

This implementation has known flaws:
1. Set-Cookie, Strict-Transport-Security and Public-Key-Pins headers
are lost from the responses of asynchronous revalidations.
2. Conditional requests sent from the Blink cache do not have the
stale-while-revalidate logic applied to them.
3. Support for the bandwidth reduction proxy is hacky.

It will be replaced with a better implementation if/when the concept is proven.

BUG=348877
TEST=net_unittests

Review URL: https://codereview.chromium.org/455623003

Cr-Commit-Position: refs/heads/master@{#298649}
25 files changed