paginator-box: Implement drawing cache

Keep a Cairo surface for each child. Paint children onto their surfaces,
then compose the final image. Instead of painting the whole children,
track invalidations and paint only changed parts. This means most paginator
redraws don't involve any child redraws. This should significantly speed
up scrolling when children are expensive to draw.

Signed-off-by: Alexander Mikhaylenko <>
7 jobs for wip/exalm/draw in 10 minutes and 43 seconds (queued for 2 seconds)