Defer flushes if kPreferNoIO is specified

Prior to this patch clients who were solely uploading to textures (e.g., SW Mask Mgr) would cause extra flushes b.c., even though kPreferNoIO was being specified, resources with pending IO would still be returned even though there was plenty of space in the resource cache.

Review URL: https://codereview.chromium.org/1286203002
diff --git a/include/gpu/GrSurface.h b/include/gpu/GrSurface.h
index 3515a1a..2893500 100644
--- a/include/gpu/GrSurface.h
+++ b/include/gpu/GrSurface.h
@@ -133,6 +133,8 @@
         fReleaseCtx = ctx;
     }
 
+    static size_t WorseCaseSize(const GrSurfaceDesc& desc);
+
 protected:
     // Methods made available via GrSurfacePriv
     SkImageInfo info(SkAlphaType) const;