Break GrTextContext's reliance on SkGpuDevice

This CL seems to have 2 main downsides:

1) It duplicates some code in SkBaseDevice::filterTextFlags
2) It makes it tougher to derive from SkGpuDevice

It seems reasonable (at least to me) that the TextContexts get the power to reset the LCD flags.

Review URL: https://codereview.chromium.org/1159973002
diff --git a/src/gpu/SkGpuDevice.h b/src/gpu/SkGpuDevice.h
index d7dceed..d1070e5 100644
--- a/src/gpu/SkGpuDevice.h
+++ b/src/gpu/SkGpuDevice.h
@@ -138,7 +138,7 @@
 protected:
     bool onReadPixels(const SkImageInfo&, void*, size_t, int, int) override;
     bool onWritePixels(const SkImageInfo&, const void*, size_t, int, int) override;
-    bool onShouldDisableLCD(const SkPaint&) const override;
+    bool onShouldDisableLCD(const SkPaint&) const final;
 
     /**  PRIVATE / EXPERIMENTAL -- do not call */
     virtual bool EXPERIMENTAL_drawPicture(SkCanvas* canvas, const SkPicture* picture,