Plumb dst color space in many places, rather than "mode"

This is less to type in most cases, and gives us more information
(for things like picture-backed images, where we need to know all
about the destination surface).

Additionally, strip out the plumbing entirely for bitmap sources,
where we don't need to know anything.

BUG=skia:

Change-Id: I4deff6c7c345fcf62eb08b2aff0560adae4313da
Reviewed-on: https://skia-review.googlesource.com/5748
Reviewed-by: Mike Klein <mtklein@chromium.org>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/src/effects/SkImageSource.cpp b/src/effects/SkImageSource.cpp
index de84941..0f0160d 100644
--- a/src/effects/SkImageSource.cpp
+++ b/src/effects/SkImageSource.cpp
@@ -86,12 +86,8 @@
     if (fSrcRect == bounds && dstRect == bounds) {
         // No regions cropped out or resized; return entire image.
         offset->fX = offset->fY = 0;
-        SkDestinationSurfaceColorMode decodeColorMode = ctx.outputProperties().colorSpace()
-            ? SkDestinationSurfaceColorMode::kGammaAndColorSpaceAware
-            : SkDestinationSurfaceColorMode::kLegacy;
         return SkSpecialImage::MakeFromImage(SkIRect::MakeWH(fImage->width(), fImage->height()),
-                                             fImage,
-                                             decodeColorMode,
+                                             fImage, ctx.outputProperties().colorSpace(),
                                              &source->props());
     }