Allow overriding DNS config properties in HostResolver.

Created DnsConfigOverrides with Optionals of most properties in
DnsConfig.  HostResolver can then apply these overrides over any config
read from the system for use with the underlying DnsClient.  More
cleanly supports the functionality needed by DnsProbeService where it
currently needs to maintain its own DnsClient, listen for any changes to
system DNS config, and apply custom overrides before passing the config
to its owned DnsClient.

As this is essentially a generalization of the mechanism used to set DOH
servers, replaced those calls with use of a DnsConfigOverrides.

This functionality will be added to the Mojo API in a subsequent change.

Bug: 846423
Cq-Include-Trybots: luci.chromium.try:linux_mojo
Change-Id: I737c570f019263e711423d3be94d2a8f8f860731
Reviewed-on: https://chromium-review.googlesource.com/c/1259902
Commit-Queue: Eric Orth <[email protected]>
Reviewed-by: Matt Menke <[email protected]>
Cr-Commit-Position: refs/heads/master@{#598101}
14 files changed