GP Emit Code takes a struct

BUG=skia:

Review URL: https://codereview.chromium.org/666693012
Override SkCanvas::drawImage() in SkDeferredCanvas and SkGPipe

Depend on https://codereview.chromium.org/663233002

BUG=skia:2947

Committed: https://skia.googlesource.com/skia/+/687732fe046c9cfec940f2d7f661cd97651d10a8

Review URL: https://codereview.chromium.org/613673005
SkResourceCache::Key namespace support.

Add a unique-per-subclass namespace tag to make Keys from different
domains comparable.

Also drop the SkPictureShader cache and convert to using the global
resource cache instead.

R=reed@google.com,mtklein@google.com,robertphillips@google.com

Review URL: https://codereview.chromium.org/668223002
explicitly size fType in SkRRect, to ensure the are no uninitialized bytes
(so it can be used as a key in a cache)

BUG=skia:

Review URL: https://codereview.chromium.org/670183002
webtry: Improve error handling/message when creating sqlite tables.

In case they fail, lets fail with an ERROR message rather than an INFO,
and lets make the error message a little bit better.

BUG=None
TEST=None
R=jcgregorio@google.com

Review URL: https://codereview.chromium.org/669643004
Qualify the return value of SkImageDecoder::decode

Add a new enum to differentiate between a complete decode and a
partial decode (with the third value being failure). Return this
value from SkImageDecoder::onDecode (in all subclasses, plus
SkImageDecoder_empty) and ::decode.

For convenience, if the enum is treated as a boolean, success and
partial success are both considered true.

Note that the static helper functions (DecodeFile etc) still return
true and false (for one thing, this allows us to continue to use
SkImageDecoder::DecodeMemory as an SkPicture::InstallPixelRefProc in
SkPicture::CreateFromStream).

Also correctly report failure in SkASTCImageDecoder::onDecode when
SkTextureCompressor::DecompressBufferFromFormat fails.

BUG=skia:3037
BUG:b/17419670

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