Change GrTextContext fallbacks to be a linked list chain.

Preliminary work for getting color emoji working with
distance field text.

BUG=skia:2887

Review URL: https://codereview.chromium.org/650273003
diff --git a/src/gpu/GrDistanceFieldTextContext.cpp b/src/gpu/GrDistanceFieldTextContext.cpp
index 04ad59b..e10fa4f 100755
--- a/src/gpu/GrDistanceFieldTextContext.cpp
+++ b/src/gpu/GrDistanceFieldTextContext.cpp
@@ -7,6 +7,7 @@
 
 #include "GrDistanceFieldTextContext.h"
 #include "GrAtlas.h"
+#include "GrBitmapTextContext.h"
 #include "GrDrawTarget.h"
 #include "GrDrawTargetCaps.h"
 #include "GrFontScaler.h"
@@ -80,6 +81,16 @@
     fVertexBounds.setLargestInverted();
 }
 
+GrDistanceFieldTextContext* GrDistanceFieldTextContext::Create(GrContext* context,
+                                                               const SkDeviceProperties& props,
+                                                               bool enable) {
+    GrDistanceFieldTextContext* textContext = SkNEW_ARGS(GrDistanceFieldTextContext, 
+                                                         (context, props, enable));
+    textContext->fFallbackTextContext = GrBitmapTextContext::Create(context, props);
+
+    return textContext;
+}
+
 GrDistanceFieldTextContext::~GrDistanceFieldTextContext() {
     this->flush();
     SkSafeSetNull(fGammaTexture);
@@ -196,7 +207,7 @@
     }
 }
 
-void GrDistanceFieldTextContext::drawText(const GrPaint& paint, const SkPaint& skPaint,
+void GrDistanceFieldTextContext::onDrawText(const GrPaint& paint, const SkPaint& skPaint,
                                           const char text[], size_t byteLength,
                                           SkScalar x, SkScalar y) {
     SkASSERT(byteLength == 0 || text != NULL);
@@ -271,7 +282,7 @@
     this->finish();
 }
 
-void GrDistanceFieldTextContext::drawPosText(const GrPaint& paint, const SkPaint& skPaint,
+void GrDistanceFieldTextContext::onDrawPosText(const GrPaint& paint, const SkPaint& skPaint,
                                              const char text[], size_t byteLength,
                                              const SkScalar pos[], int scalarsPerPosition,
                                              const SkPoint& offset) {