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 4 minutes and 58 seconds (queued for 2 seconds)
detached
Status Job ID Name Coverage
  Review
passed #304874
check-commit-log

00:00:25

 
  Build
passed #304875
build-mutter

00:01:26

 
  Test
passed #304877
can-build-gnome-shell

00:01:36

passed #304876
test-mutter

00:03:06