Rewrite GrTextureMaker to disentangle bitmap case from base class and give GPU object a say in what copying needs to be done.

Review URL: https://codereview.chromium.org/1409163002
diff --git a/include/gpu/GrResourceKey.h b/include/gpu/GrResourceKey.h
index 6cfa90f..9958cfc 100644
--- a/include/gpu/GrResourceKey.h
+++ b/include/gpu/GrResourceKey.h
@@ -138,8 +138,8 @@
 
     friend class TestResource; // For unit test to access kMetaDataCnt.
 
-    // bmp textures require 4 uint32_t values.
-    SkAutoSTMalloc<kMetaDataCnt + 4, uint32_t> fKey;
+    // bmp textures require 5 uint32_t values.
+    SkAutoSTMalloc<kMetaDataCnt + 5, uint32_t> fKey;
 };
 
 /**