Hook up NetworkIsolationKey to QuicCryptoClientConfig.

The class has a per-server cache that could be used for fingerprinting.
As it's defined outside of net/, rather than make QuicCryptoClientConfig
NetworkIsolationKey-aware, this CL has QuicStreamFactory create one
QuicCryptoClientConfig per NetworkIsolationKey, as needed. Once there
are no live QuicSessions/QuicStreamFactory::[.*]Jobs using a particular
QuicCryptoClientConfig, the QuicCryptoClientConfig is added to an MRU
cache of recently used configs, and reused/evicted as needed.

This CL also passes in a NetworkIsolationKey to the
HttpServerProperties::*QuicServerInfo calls, to finish hooking up
NetworkIsolationKeys to HttpServerProperties. It's needed in this CL
because the only integration tests for QuicCryptoClientConfig rely
on those methods.

Bug: 1003423, 969890
Change-Id: Id1823012104b84677f6684205bb58fa0227825b4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1809601
Reviewed-by: Zhongyi Shi <[email protected]>
Commit-Queue: Matt Menke <[email protected]>
Cr-Commit-Position: refs/heads/master@{#698665}
19 files changed