[Previews] Handling the response from remote Optimization Guide Service.

HintsFetcher handles the response from the remote Optimization Guide
Service and deserializes the response content into GetHintsResponse.
UMA histogram logs are registered for the HTTP response code and network error codes.

Previews Optimization Guide is notified via callback that the hints
fetch was successful and the GetHintsResponse is returned.

Previews Hints is created and handles parsing the GetHintsResponse object into
a format, currently ComponentUpdateData, that the HintCacheStore can store the
fetched hints in.

Unit tests for HintFetcher, PreviewsOptimizationGuide, PreviewsHints have
been updated to test various response cases.


Bug: 932707
Change-Id: I1d004b89efdb30e2ba1443703c635b238ee37fc9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1522328
Commit-Queue: Michael Crouse <mcrouse@chromium.org>
Auto-Submit: Michael Crouse <mcrouse@chromium.org>
Reviewed-by: Tarun Bansal <tbansal@chromium.org>
Cr-Commit-Position: refs/heads/master@{#644367}
15 files changed