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/GrBitmapTextContext.h b/include/gpu/GrBitmapTextContext.h
index e0900ec..e1b3d72 100755
--- a/include/gpu/GrBitmapTextContext.h
+++ b/include/gpu/GrBitmapTextContext.h
@@ -17,13 +17,14 @@
  */
 class GrBitmapTextContext : public GrTextContext {
 public:
-    GrBitmapTextContext(GrContext*, const GrPaint&, SkColor);
-    virtual ~GrBitmapTextContext();
-
     virtual void drawPackedGlyph(GrGlyph::PackedID, GrFixed left, GrFixed top,
                          GrFontScaler*) SK_OVERRIDE;
 
 private:
+    GrBitmapTextContext(GrContext*, const GrPaint&, const SkPaint&);
+    virtual ~GrBitmapTextContext();
+    friend class GrTTextContextManager<GrBitmapTextContext>;
+
     GrContext::AutoMatrix  fAutoMatrix;
     GrTextStrike*          fStrike;
 
@@ -36,7 +37,6 @@
         kDefaultRequestedVerts   = kDefaultRequestedGlyphs * 4,
     };
 
-    SkColor                 fSkPaintColor;
     SkPoint*                fVertices;
     int32_t                 fMaxVertices;
     GrTexture*              fCurrTexture;