clean up SkShader friends

Many SkShader subclasses are only friends to use makeColorSpace().

Our usual solution to this is to add a method on SkColorSpaceXformer
that calls makeColorSpace() for us, so that only SkColorSpaceXformer
needs to be a friend.

Just a refactor.  No image diffs.

Change-Id: Icf952b739edf45f2fb8c0c35e353ef2866f4c5cc
Reviewed-on: https://skia-review.googlesource.com/16370
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
diff --git a/src/core/SkColorSpaceXformer.cpp b/src/core/SkColorSpaceXformer.cpp
index a51e2e6..f5f22a1 100644
--- a/src/core/SkColorSpaceXformer.cpp
+++ b/src/core/SkColorSpaceXformer.cpp
@@ -52,6 +52,10 @@
     return imageFilter->makeColorSpace(this);
 }
 
+sk_sp<SkShader> SkColorSpaceXformer::apply(const SkShader* shader) {
+    return shader->makeColorSpace(this);
+}
+
 void SkColorSpaceXformer::apply(SkColor* xformed, const SkColor* srgb, int n) {
     SkAssertResult(fFromSRGB->apply(SkColorSpaceXform::kBGRA_8888_ColorFormat, xformed,
                                     SkColorSpaceXform::kBGRA_8888_ColorFormat, srgb,
@@ -73,7 +77,7 @@
     }
 
     if (auto shader = src.getShader()) {
-        dst.setShader(shader->makeColorSpace(this));
+        dst.setShader(this->apply(shader));
     }
 
     if (auto cf = src.getColorFilter()) {