Consistently fail readPixels when rowbytes not a multiple of bpp

Previously this would report success but may have rounded the
rowbytes down to a multiple of bpp prior to writing the dst.
On GPU it could trigger an assert in a debug build.

Bug: chromium:1163061
Change-Id: I19709f4cdb71139732998a4dd2e14476099f0ba8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/363782
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/src/gpu/GrSurfaceContext.cpp b/src/gpu/GrSurfaceContext.cpp
index d67fa0f..8be9309 100644
--- a/src/gpu/GrSurfaceContext.cpp
+++ b/src/gpu/GrSurfaceContext.cpp
@@ -177,6 +177,10 @@
         return false;
     }
 
+    if (dst.rowBytes() % dst.info().bpp()) {
+        return false;
+    }
+
     dst = dst.clip(this->dimensions(), &pt);
     if (!dst.hasPixels()) {
         return false;