[Sync] Fix handling of dropped favicons to respect type

Previously, we would locally drop both the image and tracking part of a favicon
if it was unsynced. But, the notion of unsynced is per-type, so this can be
incorrect if only part of a favicon is available. Now, drop logic is per type
as well.

BUG=335493

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252702 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 252702
Use white header for app windows part #1

This CL:
- Refactors FrameCaptionButton so that it inherits from views::CustomButton instead of views::ImageButton. This is needed because part #2 switches the button to be painted as a background + icon
background: none, hovered or pressed
icon: active or inactive
- Sets the images for the FrameCaptionButton to use in HeaderPainter. Part #2 introduces browser only window control assets. This CL is a step towards making ash not know about browser resources.
- Renames |FrameCaptionButton::animation_| to |FrameCaptionButton::swap_images_animation_| in preparation for disambiguating |FrameCaptionButton::swap_images_animation_| from |CustomButton::hover_animation_|.

BUG=297187
TEST=None

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@252703 0039d316-1c4b-4281-b951-d872f2087c98
SVN changes up to revision 252703