clutter/actor: Use the new shallow relayout API

If an actor sets flag `CLUTTER_ACTOR_NO_LAYOUT` then that means it
is (or should be) unaffected by `queue_relayout` calls in its children.
So we can avoid propagating `queue_relayout` all the way up to the stage
and avoid a full stage relayout each time.

But those children whose parent has `CLUTTER_ACTOR_NO_LAYOUT` still need
to be allocated at some point. So we do it at the same point where it
happened before. Only we now queue a *shallow* relayout so the `allocate`
run on the next frame doesn't need to descend the whole actor tree anymore.
Only a subtree and hopefully very small.

For free-floating and top-level actors this provides a measurable
performance benefit. According to Google Profiler, calls to
`_clutter_stage_maybe_relayout` are now so cheap that they no longer show
up in performance profiles. Overall gnome-shell's CPU usage is reduced
by relative amounts:

  * Dragging windows with the mouse: -10.0%
  * Drag-and-drop an icon in the overview: -4.0%
  * Icon spring animation: -7.7%

GNOME/mutter!575
4 jobs for !575 with shallow-relayout in 5 minutes and 40 seconds (queued for 1 second)
detached
Status Job ID Name Coverage
  Review
passed #317691
check-commit-log

00:00:24

 
  Build
passed #317692
build-mutter

00:01:55

 
  Test
passed #317694
can-build-gnome-shell

00:01:51

passed #317693
test-mutter

00:03:21