Fix correctness issue with SkImageImageFilter and unpremul images

Unpremul images passed to SkImageImageFilter draw incorrectly, when an intermediate SurfaceContext is not used.
For repro steps see https://fiddle.skia.org/c/76d202e60b05a6aab9c8a074863f0b68.
CL fixes SkSpecialImage::MakeFromImage to not hardcode premul alpha type, but read alpha type from the source SkImage.
CL fixes SkImageImageFilter to generate correct fragment shader for unpremul images: e.g. color.rgb *= color.a.

Bug: skia:14045
Change-Id: I3b27849d64294efc783bebcc62d66ff59e164a15
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/630196
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
3 files changed