Batch similar composite operations together.
Known bugs and limitations: * Only 32 composite operations can be batched, because that is the maximum size of the matrix palette. * Nested composite operations aren't correctly handled at the moment. They use the wrong device pixel ratio and read from and write to the same texture, which is undefined behavior (although usually works). * When a large number (>700 in my tests) of composite operations occur, there can be stray triangles drawn. I haven't been able to pin down why that occurs yet.