Add deferred texture upload API.

Performs thread-safe decoding of SkImage in order to later create a texture-backed SkImage.

The client allocates storage for the data.

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

Review URL: https://codereview.chromium.org/1776693002
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index a16d5c0..1f6934d 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -128,6 +128,13 @@
     fCaps->unref();
 }
 
+GrContextThreadSafeProxy* GrContext::threadSafeProxy() {
+    if (!fThreadSafeProxy) {
+        fThreadSafeProxy.reset(new GrContextThreadSafeProxy(fCaps, this->uniqueID()));
+    }
+    return SkRef(fThreadSafeProxy.get());
+}
+
 void GrContext::abandonContext() {
     ASSERT_SINGLE_OWNER