Add support for updating texture cache, and support canvas animation.
NOTE: The logic to detect if old batches can be reused will need to take into account if a new image has been received. This doesn't currently matter if the image is the same size/format, since the same texture cache slot is used - however, when different size/format is supported, the batch will need to be invalidated too!