Integrate RankerModelLoader with TranslateRanker.

This CL replaces the model loading code in the TranslateRanker with
the use of the RankerModelLoader.

* the TranslateRanker transitions to a KeyedService
* the TranslateRanker is split into interface and implementation,
  facilitationt mocking the TranslateRanker in tests.
* Browser-level TransalteRankerFactories are added in order to
  pass the appropriate model cache path and model url to the ranker
  and, in turn, the model loader.
* Metrics providers have been promoted to browser level to allow for
  accessing it as a keyed servie across all loaded profiles.

BUG=646711, 697665, 698057

Review-Url: https://codereview.chromium.org/2785493004
Cr-Commit-Position: refs/heads/master@{#462038}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index e889c47..45129594 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1342,6 +1342,10 @@
     "translate/language_model_factory.h",
     "translate/translate_accept_languages_factory.cc",
     "translate/translate_accept_languages_factory.h",
+    "translate/translate_ranker_factory.cc",
+    "translate/translate_ranker_factory.h",
+    "translate/translate_ranker_metrics_provider.cc",
+    "translate/translate_ranker_metrics_provider.h",
     "translate/translate_service.cc",
     "translate/translate_service.h",
     "undo/bookmark_undo_service_factory.cc",