clutter: Use G_PARAM_EXPLICIT_NOTIFY for actor and stage properties

Turns out GObject implicitly notifies all properties by default as soon
as a property setter is called, no matter if the property actually
changed or not. One can opt-out of this behavior by setting the
G_PARAM_EXPLICIT_NOTIFY flag.

So since almost all our properties get notified explicitely (well,
except ClutterActors deprecated show-on-set-parent property), set this
flag for all properties of ClutterActor and ClutterStage now. This
significantly reduces the number of notify:: signals emitted on
ClutterActors, because in gnome-shell javascript we usually set GObject
properties directly, not by going through the extra setter method.

More cleanups can be done in the future, since this flag is suitable for
almost every property in Clutter and even Mutter.

This fixes a crash where we'd hit a newly introduced assertion in
on_device_actor_reactive_changed() of ClutterStage because
notify::reactive got emitted multiple times.

Part-of: <GNOME/mutter!1651>
13 jobs for use-explicit-notify
Status Job ID Name Coverage
  Review
manual #1050167
manual
check-commit-log
manual #1050168
manual
check-merge-request
 
  Prepare
created #1050170
aarch64
build-fedora-container@aarch64
created #1050169
build-fedora-container@x86_64
 
  Build
created #1050172
aarch64
build-mutter@aarch64
created #1050171
build-mutter@x86_64
created #1050174
build-without-native-backend-and-wayland@x86_64
created #1050173
build-without-opengl-and-glx@x86_64
 
  Test
created #1050177
can-build-gnome-shell@x86_64
created #1050176
aarch64
test-mutter@aarch64
created #1050175
test-mutter@x86_64
 
  Coverage
created #1050179
aarch64
test-mutter-coverage@aarch64
created #1050178
test-mutter-coverage@x86_64