Reland "Switch SkCodec to use skcms plus fixes""

This reverts commit 83988edfd3256dc822b961362aad7fbc3e0cdabc.

The CTS failure was actually due to another CL.

TBR=brianosman@google.com
TBR=djsollen@google.com

Bug: skia:6839
Bug: skia:8052
Bug: skia:8278
Change-Id: Id9f152ec2c66467d90f49df223cb9b7c168ac2ac
Reviewed-on: https://skia-review.googlesource.com/149483
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
diff --git a/src/codec/SkBmpStandardCodec.h b/src/codec/SkBmpStandardCodec.h
index 1790692..84a1299 100644
--- a/src/codec/SkBmpStandardCodec.h
+++ b/src/codec/SkBmpStandardCodec.h
@@ -39,9 +39,9 @@
      *                 the icp mask, if there is one)
      * @param inIco    indicates if the bmp is embedded in an ico file
      */
-    SkBmpStandardCodec(int width, int height, const SkEncodedInfo& info,
-                       std::unique_ptr<SkStream> stream, uint16_t bitsPerPixel, uint32_t numColors,
-                       uint32_t bytesPerColor, uint32_t offset, SkCodec::SkScanlineOrder rowOrder,
+    SkBmpStandardCodec(SkEncodedInfo&& info, std::unique_ptr<SkStream> stream,
+                       uint16_t bitsPerPixel, uint32_t numColors, uint32_t bytesPerColor,
+                       uint32_t offset, SkCodec::SkScanlineOrder rowOrder,
                        bool isOpaque, bool inIco);
 
 protected:
@@ -63,12 +63,8 @@
     }
 
 private:
-
-    /*
-     * Creates the color table
-     */
     bool createColorTable(SkColorType colorType, SkAlphaType alphaType);
-
+    SkEncodedInfo swizzlerInfo() const;
     void initializeSwizzler(const SkImageInfo& dstInfo, const Options& opts);
 
     int decodeRows(const SkImageInfo& dstInfo, void* dst, size_t dstRowBytes,