Fix bug in SkGifCodec / Switch SkImageDec tests to use Codec

SkImageDecoder is still used throughout tests, tools, gms etc.
Deleting it from tests is an easy first step.

Bonus is that we add tests of SkCodec.

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1733863003

Review URL: https://codereview.chromium.org/1733863003
diff --git a/tests/CodecPriv.h b/tests/CodecPriv.h
new file mode 100644
index 0000000..1123a41
--- /dev/null
+++ b/tests/CodecPriv.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2016 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkBitmap.h"
+#include "SkCodec.h"
+#include "SkData.h"
+
+inline bool decode_memory(const void* mem, size_t size, SkBitmap* bm) {
+    SkAutoTUnref<SkData> data(SkData::NewWithoutCopy(mem, size));
+
+    SkAutoTDelete<SkCodec> codec(SkCodec::NewFromData(data.get()));
+    if (!codec) {
+        return false;
+    }
+
+    // Construct a color table for the decode if necessary
+    SkAutoTUnref<SkColorTable> colorTable(nullptr);
+    SkPMColor* colorPtr = nullptr;
+    int* colorCountPtr = nullptr;
+    int maxColors = 256;
+    if (kIndex_8_SkColorType == codec->getInfo().colorType()) {
+        SkPMColor colors[256];
+        colorTable.reset(new SkColorTable(colors, maxColors));
+        colorPtr = const_cast<SkPMColor*>(colorTable->readColors());
+        colorCountPtr = &maxColors;
+    }
+
+    bm->allocPixels(codec->getInfo(), nullptr, colorTable.get());
+    const SkCodec::Result result = codec->getPixels(codec->getInfo(), bm->getPixels(),
+            bm->rowBytes(), nullptr, colorPtr, colorCountPtr);
+    return result == SkCodec::kSuccess || result == SkCodec::kIncompleteInput;
+}