Use Manifest.icons instead of favicon in ShortcutHelper when possible.

The algorithm is first trying to find an image to fit exactly the
required size in the device scale factor and default scale factor.
If it can't it will try to find the closest but preferrable largest
image. Note that the algorithm completely ignore an entry with no 'sizes'.

Fetching the image happens as soon as the Manifest is loaded and can be
done before or after the call to ShortcutHelper::AddShortcut().

BUG=366145
TEST=ShortcutHelperTest

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

Cr-Commit-Position: refs/heads/master@{#296522}
5 files changed