Plumb control config into network service

This exposes the control config for legacy TLS errors to the network
stack. This is loosely based on the same design that the CRLSet
component installer uses:
1. Installer passes to network service via Mojo
2. Network service keeps a LegacyTLSConfigDistributor which tracks
   observers that care about the config
3. SSLConfigServiceMojo registers an observer to get the latest
   config
4. SSLConfigService exposes an interface to check
   ShouldSuppressLegacyTLSWarning()

This change also moves the tls_deprecation_config.proto into the network
service, and adds a ref counted wrapper around it (so that the
LegacyTLSConfigDistributor can pass them to the observers without
lifetime issues).

This currently duplicates the control config set (there is a copy in the
browser and a copy in the network service). A followup CL will address
this.

The new cert error is introduced in https://crrev.com/c/1894616.
The new interstitial is introduced in https://crrev.com/c/1940707.

Bug: 896013, 1039756
Change-Id: I31fee71c292ffe8b592d3c6f47c3352ed4475892
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1906779
Reviewed-by: Xing Liu <[email protected]>
Reviewed-by: Matt Menke <[email protected]>
Reviewed-by: Lei Zhang <[email protected]>
Reviewed-by: David Benjamin <[email protected]>
Reviewed-by: Mustafa Emre Acer <[email protected]>
Reviewed-by: Ryan Sturm <[email protected]>
Reviewed-by: Sorin Jianu <[email protected]>
Commit-Queue: Christopher Thompson <[email protected]>
Cr-Commit-Position: refs/heads/master@{#738435}
38 files changed