Add factory class for generating various flavors of GrTextContext.

This is the first pass of making Gr*TextContext more generic and easily
subclassed. The next stage will be making GrBitmapTextContext and
GrDistanceFieldTextContext more similar by moving the SkDraw loop into
each subclass.

BUG=skia:2018

Committed: http://code.google.com/p/skia/source/detail?r=13142

R=bsalomon@google.com, reed@google.com

Author: jvanverth@google.com

Review URL: https://codereview.chromium.org/144283002

git-svn-id: http://skia.googlecode.com/svn/trunk@13165 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/gpu/GrDistanceFieldTextContext.h b/include/gpu/GrDistanceFieldTextContext.h
index 3e00ff2..4fde6ce 100755
--- a/include/gpu/GrDistanceFieldTextContext.h
+++ b/include/gpu/GrDistanceFieldTextContext.h
@@ -17,9 +17,6 @@
  */
 class GrDistanceFieldTextContext : public GrTextContext {
 public:
-    GrDistanceFieldTextContext(GrContext*, const GrPaint&, const SkPaint&);
-    virtual ~GrDistanceFieldTextContext();
-
     virtual void drawPackedGlyph(GrGlyph::PackedID, GrFixed left, GrFixed top,
                                  GrFontScaler*) SK_OVERRIDE;
 
@@ -33,6 +30,10 @@
     const SkPaint& getSkPaint() { return fSkPaint; }
 
 private:
+    GrDistanceFieldTextContext(GrContext*, const GrPaint&, const SkPaint&);
+    virtual ~GrDistanceFieldTextContext();
+    friend class GrTTextContextManager<GrDistanceFieldTextContext>;
+
     GrTextStrike*           fStrike;
     SkScalar                fTextRatio;
 
@@ -45,7 +46,6 @@
         kDefaultRequestedVerts   = kDefaultRequestedGlyphs * 4,
     };
 
-    SkPaint                 fSkPaint;
     SkPoint*                fVertices;
     int32_t                 fMaxVertices;
     GrTexture*              fCurrTexture;