Dump of WIP changes that explores the 'all-rects' approach

The 'all-rects' approach is escentially the original approach but using
rectangles as the only primitive. All non-rectangle geometry is
drawn in shaders using a rectangle as the base geometry.

This has the huge advantage that the ordering problem is completely
eliminated, since instances are all rects and always rendered in order.

The downside is that shader complexity (specially fragment) increases
considerably. Mostly for drawing borders as per the CSS spec, which
accounts for the majority of non-rectangle geometry. Still, this
approach seems even faster than previous approach, and because of
the absence of ordering problem, it can be implemented using current
API.