Add XferProcessor factory in GrPaint and GrDrawState.

In this CL the XP should have zero effect on the actual rendering pipeline.

BUG=skia:

Review URL: https://codereview.chromium.org/751283002
diff --git a/src/gpu/GrBitmapTextContext.cpp b/src/gpu/GrBitmapTextContext.cpp
index 3b0bddb..f5e2c29 100755
--- a/src/gpu/GrBitmapTextContext.cpp
+++ b/src/gpu/GrBitmapTextContext.cpp
@@ -561,9 +561,10 @@
                 break;
                 // LCD text
             case kA565_GrMaskFormat: {
-                if (kOne_GrBlendCoeff != fPaint.getSrcBlendCoeff() ||
-                    kISA_GrBlendCoeff != fPaint.getDstBlendCoeff() ||
-                    fPaint.numColorStages()) {
+                // TODO: move supportsRGBCoverage check to setupCoverageEffect and only add LCD
+                // processor if the xp can support it. For now we will simply assume that if
+                // fUseLCDText is true, then we have a known color output.
+                if (!drawState.getXPFactory()->supportsRGBCoverage(0, kRGBA_GrColorComponentFlags)) {
                     SkDebugf("LCD Text will not draw correctly.\n");
                 }
                 SkASSERT(!drawState.hasColorVertexAttribute());