WebApps: Split web app icon data into manifest URLs and downloaded bitmaps

WebApplicationsInfo stores its icons' size, URL and bitmap data in one
struct. This makes it impossible to check whether a site's icon manifest
data has changed without undergoing the entire icon downloading process.

This CL splits the struct up into two:
 - Icon URL + size
 - Icon size + bitmap data
This allows us to compare the first with the latest site manifest to
check for updates. This wasn't possible previously as we would only
store icons that successfully loaded and would also throw away the
original specified sizes.

The majority of the changes in this CL derive from the change made to
WebApplicationInfo splitting "icons" into "icon_infos" and
"icon_bitmaps" e.g. UpdateWebAppIconsWithoutChangingLinks() is being
removed because it is redundant now that icon_infos is an input to
icon downloading and icon_bitmaps is an output, by retaining the
icon_infos input separately no input URLs will be changed.

Design doc:
https://docs.google.com/document/d/1Ryd35qXIOpRHNLUy0Mz0LRILzSdZcRdiJBHNvrNPjeI/edit

Bug: 926083
Change-Id: I5e52d5e05644de8a15d61dbfb70eca417c1dcfb5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1928600
Commit-Queue: Alan Cutter <alancutter@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Theresa  <twellington@chromium.org>
Reviewed-by: Alexey Baskakov <loyso@chromium.org>
Reviewed-by: Oliver Chang <ochang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#720809}
40 files changed