This patch creates a second picture cache instance, which is used
for the main UI content. It also expands the way picture caches
handle opaque rects, such that subpixel AA is retained on the
cached UI slice.
Some of the patch is more hard-coded than ideal. For example, we
set the tile size for the UI slice to be smaller, to reduce
memory consumption. In future, we should make this based on either
an explicit API, or some kind of heuristic.
With this change, the draw call count is often reduced to only
2-3 draw calls when the content is all cached / static.