predictors: Implement PreconnectManager

This CL adds an implementation for PreconnectManager class together with tests.
PreconnectManager is responsible for preresolving and preconnecting to 
origins based on the input list of URLs.

Other changes:
- Modification of argument type of methods content::{Preconnect,Preresolve}Url
  from context::ResourceContext* to net::URLRequestContextGetter*.
- Adding missing LoadingPredictor::Shutdown() call in unittests + DCHECK that
  Shutdown() was actually called.

Bug: 699080
Change-Id: I5c6a303e5d22c9027da59b266a7537194b286c0b
Reviewed-on: https://chromium-review.googlesource.com/567189
Commit-Queue: Alexandr Ilin <alexilin@chromium.org>
Reviewed-by: Matt Menke <mmenke@chromium.org>
Reviewed-by: Achuith Bhandarkar <achuith@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487107}
11 files changed