gl:  use the same rendering patch for gl, glesv3 and ANGLE extension

For glesv2 with GL_ANGLE_framebuffer_blit and
GL_ANGLE_framebuffer_multisample, glesv3, we use the same rendering
path as GL.
gl: do not blit if content in texture and multisampled renderbuffer are same
gl/msaa: emit integer instead of converting floating points
gl/msaa: convert point to integer instead of point to float

If we know a path is simple quad and its points are integers, we can
convert points to integer directly instead of converting to float, which
is slower
gl: convert integer instead of cairo_point during blur
gl: optimize for tiled-based architecture when clear gl surface

For tiled-based architecture, glClear is optimized for clearing
color, stencil and depth buffer
gl: reset status after add to image atlas

in case add to image atlas fails, the status is left in
error state.  We need to reset to CAIRO_INT_STATUS_SUCCESS
gl/msaa: blit both stencil and color buffer to single sample FBO

msaa compositor for GLESv2 with ANGLE multisample extensions and
GLESv3 uses single-sampled fbo for aliased drawing.  We need to
blit both stencil and color buffer if there is a valid stencil
cache.  Otherwise, we only need to blit color buffer
gl: reduce chances of re-generating mask surface for glyph
gl/msaa: uses source extents instead of target bounded area

source extents is computed from glyph/text extents which is much smaller
than target bounded extents