Add Cronet experimental option for host cache persistence

Allows embedders to enable host cache persistence with their choice of
delay, and creates a HostCachePersistenceManager when the option is
enabled. Includes an integration test.

BUG=605149
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_cronet_tester

Review-Url: https://codereview.chromium.org/2954753002
Cr-Commit-Position: refs/heads/master@{#483024}
diff --git a/components/cronet/url_request_context_config.h b/components/cronet/url_request_context_config.h
index 7b13833..51eb80b6 100644
--- a/components/cronet/url_request_context_config.h
+++ b/components/cronet/url_request_context_config.h
@@ -167,6 +167,13 @@
   // The list of public key pins.
   std::vector<std::unique_ptr<Pkp>> pkp_list;
 
+  // Enable DNS cache persistence.
+  bool enable_host_cache_persistence = false;
+
+  // Minimum time in milliseconds between writing the HostCache contents to
+  // prefs. Only relevant when |enable_host_cache_persistence| is true.
+  int host_cache_persistence_delay_ms = 60000;
+
   // Experimental options that are recognized by the config parser.
   std::unique_ptr<base::DictionaryValue> effective_experimental_options =
       nullptr;