Convert GrClip to an abstract base class

Converts GrClip to an abstract base class and adds a "GrFixedClip"
implementation. GrFixedClip denotes a clip implemented with fixed-
function hardware. GrFixedClip allows us to remove the stateful
"fClipMode" member from GrClipMaskManager, and in the future will
be able to nicely encapsulate window rectangles.

After this change GrClipMaskManager is just a wrapper around
GrDrawTarget. We may want to consider removing it altogether.

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

Review-Url: https://codereview.chromium.org/1971343002
diff --git a/gm/texdata.cpp b/gm/texdata.cpp
index 494a932..01eedec 100644
--- a/gm/texdata.cpp
+++ b/gm/texdata.cpp
@@ -82,7 +82,7 @@
         SkAutoTUnref<GrTexture> au(texture);
 
         // setup new clip
-        GrClip clip(SkRect::MakeWH(2*S, 2*S));
+        GrFixedClip clip(SkIRect::MakeWH(2*S, 2*S));
 
         GrPaint paint;
         paint.setPorterDuffXPFactory(SkXfermode::kSrcOver_Mode);