change pixel-serializer to support reencoding existing data

Trying to evolve this interface so it can
- support rich set of backend-encoders (including ones like ETC1 that can cheaply convert to KXT
- allow for encoding images as well as bitmaps (e.g. for picture serialization)
- perhaps replace SkImageEncoder as an API (assuming we create a factory that returns a serializer given a format)

BUG=skia:

Review URL: https://codereview.chromium.org/1373683003
diff --git a/tests/ImageTest.cpp b/tests/ImageTest.cpp
index 0b27af9..e022077 100644
--- a/tests/ImageTest.cpp
+++ b/tests/ImageTest.cpp
@@ -119,8 +119,8 @@
     bool didEncode() const { return fDidEncode; }
 
 protected:
-    bool onUseEncodedData(const void*, size_t) override {
-        return false;
+    SkData* onReencodeData(SkData*) override {
+        return nullptr;
     }
 
     SkData* onEncodePixels(const SkImageInfo&, const void*, size_t) override {