try adding flag to allow lcd text even in a layer

BUG=skia:

Review URL: https://codereview.chromium.org/1513513002
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 0c9c20d..1d37e58 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1140,6 +1140,12 @@
     return this->getSaveCount() - 1;
 }
 
+int SkCanvas::saveLayerPreserveLCDTextRequests(const SkRect* bounds, const SkPaint* paint) {
+    unsigned flags = kARGB_ClipLayer_SaveFlag | kPreserveLCDText_PrivateSaveFlag;
+    return this->saveLayer(bounds, paint, (SaveFlags)flags);
+}
+
+
 void SkCanvas::internalSaveLayer(const SkRect* bounds, const SkPaint* paint, SaveFlags flags,
                                  SaveLayerStrategy strategy) {
 #ifndef SK_SUPPORT_LEGACY_CLIPTOLAYERFLAG
@@ -1183,8 +1189,11 @@
 
     bool forceSpriteOnRestore = false;
     {
+        const bool preserveLCDText = kOpaque_SkAlphaType == info.alphaType() ||
+                                     SkToBool(flags & kPreserveLCDText_PrivateSaveFlag);
         const SkBaseDevice::TileUsage usage = SkBaseDevice::kNever_TileUsage;
-        const SkBaseDevice::CreateInfo createInfo = SkBaseDevice::CreateInfo(info, usage, geo);
+        const SkBaseDevice::CreateInfo createInfo = SkBaseDevice::CreateInfo(info, usage, geo,
+                                                                            preserveLCDText, false);
         SkBaseDevice* newDev = device->onCreateDevice(createInfo, paint);
         if (nullptr == newDev) {
             // If onCreateDevice didn't succeed, try raster (e.g. PDF couldn't handle the paint)