do not skip save, saveLayer and restore in SkLightDeferredCanvas

Skipping these commands will create unbalance in save/restore count
disable scissor test during MSAA renderbuffer to texture blitting
disable scissor test during glBlitFramebuffer for onCopySurface
Improve speed on approxEqual() in SkMatrix
Use alpha mask texture or software mask when stencil bits = 0 in multisampled render target
enable reuse scratch textures for non-android platforms
optimize clip for GL msaa render targe that has stencil bits
bug fix for check shader is a bitmap

If shader is bitmap and paint has MaskFilter, do not batch draw, because
it will mess up the transformation matrix
create MSAA render target for blur mask texture if AA is required
add isRRect in SkPath

SkCanvas::drawPath() can be routed to GrOvalRenderer which is faster
route SkGpuDevice::drawPath() to SkGpuDevice::drawRRect()

if path contains only one RRect, we can route drawPath to drawRRect
which is much faster
fix texture red support in mesa gles driver.

Mesa GLES 3.0 does not support GL_EXT_texture_rg
detect mesa opengl es
rename shaderIsBitmap() to canOptimizeForBitmapShader()
bug fix in canDrawRect

if width <= 0 and paint style == stroke, return false
limit color components to be <= 0xFF
fix bug in worst case point count in GrHairLinePathRenderer

in both computing worst case num of points and during actual tessellation,
we must map the path with canvas's view matrix.
do not use GrOvalRenderer if paint has MaskFilter or has path effect
bug fix for join and cap for GrShapePathRenderer

fix bugs for round join and caps for GrShapeStroke
Do not use GrOvalRender if Ellipse has rotation or perspective transformation