Remove the cpu_pictures array and store the PicturePrimitive
directly inside the BrushPrimitive.

The rationale here is to move the prim store arrays to be stored
and owned by each PicturePrimitive. This is an interim step
towards that - it's a bit messy in places due to borrow check
issues, but should be a lot tidier once complete.

The benefit of doing this is that as we start to cache Pictures
more aggressively, we can retain the PicturePrimitive struct
from a previous frame, and easily compare the embedded primitive
runs to see if we have a cache hit.

This will make it possible to cache Picture primitives between
*display lists* rather than just scroll frames where appropriate,
by doing a deep compare on the primitive runs in a picture.