clutter/actor: Handle clips correctly when building paint volume

clutter_actor_paint() implements a clear preference for custom clips
over clip_to_allocation: If a custom clip is set, clip_to_allocation is
ignored.

Since the paint volume reflects what Clutter is going to paint, we
should handle it the same when putting together our paint volume: So
first handle custom clips, and if one is set, use that. Then handle
clip_to_allocation, and if that's set, use that. And finally, if both
aren't set, union our allocation with the children paint volumes to get
the building volume.

clutter_actor_paint() also doesn't check whether the custom clip is
empty: If that's the case, it will simply not paint anything. Given that
that's allowed by clutter_actor_paint(), the paint volume should also
follow here and return an empty paint volume in case the custom clip is
empty.
9 jobs for !1592 with small-pv-fix in 13 minutes and 49 seconds
detached
Status Job ID Name Coverage
  Review
passed #999419
check-commit-log

00:00:18

passed #999420
check-merge-request

00:00:33

 
  Prepare
passed #999421
build-fedora-container

00:00:53

 
  Build
passed #999422
build-mutter

00:05:18

passed #999424
build-without-native-backend-and-wayland

00:01:19

passed #999423
build-without-opengl-and-glx

00:05:10

 
  Test
passed #999426
can-build-gnome-shell

00:01:18

passed #999425
test-mutter

00:03:20

 
  Coverage
passed #999427
test-mutter-coverage

00:03:42

45.0%