Reland change to enable deferred image decoding for animated GIFs

Fixed two issues that caused the revert:
1. Report alpha/opaque state of a frame correctly. Caches the value of
   this state for all frames. Every time a frame is requested
   ImageFrame::setHasAlpha() is called to update to the latest state.
2. Fixed a crash when decoder returns an empty frame. This is possible
   for some bad GIF files.

BUG=169377,259786,259783
R=senorblanco@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@154537 bbb929c8-8fbe-4397-9dbb-9b2b20218538