[Icons NTP] Refactor large_icon_source to extract the logic shared between desktop and Android to a new large_icon_service.

This is required since the Android implementation of the icon-based NTP will rely on custom Java code to render the fallback. As a result we want to share the logic needed to retrieve large icons and to compute the fallback style without needing them to go through the full-featured chrome://large-icon that performs the rendering of fallback icons. The Java code will hook directly into the large_icon_service.

This CL also fixes a bug, making sure only non-square icons can be returned as large icons.

Besides this, this CL doesn't change the behavior but will make it possible to add the large icon selection logic to large_icon_service where it can be shared with the Android code.

BUG=467712

Review URL: https://codereview.chromium.org/1092873002

Cr-Commit-Position: refs/heads/master@{#326325}
diff --git a/components/favicon.gypi b/components/favicon.gypi
index d150316..d2f9195 100644
--- a/components/favicon.gypi
+++ b/components/favicon.gypi
@@ -36,6 +36,8 @@
         'favicon/core/favicon_service.h',
         'favicon/core/favicon_url.cc',
         'favicon/core/favicon_url.h',
+        'favicon/core/large_icon_service.cc',
+        'favicon/core/large_icon_service.h',
       ],
       'include_dirs': [
         '..',