Teach Skia to use discardable memory

Using discardable memory in Skia requires the following changes:
1. Use of SkDiscardablePixelRef.
2. Implementation of SkImageGenerator to decode an image.

This change implements items above by reusing existing infrastructure
in ImageFrameGenerator and DeferredImageDecoder. ImageFrameGenerator
performs the actual decoding. DeferredImageDecoder is responsible for
generating SkBitmap backed by SkDiscardablePixelRef.

There are some limitations of this implementations:
1. Decoder does not write directly to the memory provided by Skia.
   memcpy() is required.
2. Decoding allocates heap memory as output buffer.
3. ImageDecodingStore is still in use and manages a pool of cache.

Since the deferred image decoding is still used by Android the two code
paths will coexist until the transition is complete. Upcoming changes
will loosen up the above limitations.

BUG=318490

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

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