Batch GrOvalRenderer

The patch batches the following draws: circle, oval, rrect.  It does not
batch oval when derive is not supported in shader, and it does not support
DRRect drawing.

To support Batching, color attributes are added to gCircleVertexAttribs,
gEllipseVertexAttribs, and gDIEllipseVertexAttribs.  Two index buffers
are created for circle/oval and rrect.

The following scenarios have speed up
1. draw circles back-to-back with rotation, scale and translate
2. draw oval back-to-back with rotation, scale and translate
3. draw rrect with radii_x == radii_y with scale and translate
4. draw rrect with radii_x != radii_y with scale and translate

If you mix draw oval, circle, rrect, there will not be any batching because
each draw has different shader.

draw oval without derivative support is not batched - most modern gl/gles
drivers support derivative.

draw DRRect is not batched because a GrEffect is installed before we have
a chance to set draw state with identity matrix