Introduced a new notification system for Settings changes.
The new system is still based on the QMetaObject facility, but does not
involve assigning priorities to Settings observers.
Instead, a very rudimental dependency enforcing mechanism is employed:
at connection time (i.e. when calling the onChange function) one can
specify an optional class name as a dependency.
Whenever an update is triggered, the systems ensures that dependencies
are honored, i.e. an object depending on a class "X" will be notified after
all observing objects of class "X".
The assumption here is that controlling dependency via types is sufficient
for our purposes.
As for the API, we now have to "onChange" methods, one that takes a dependency
(as a C-style string representing a class name) and one that does not.
The slot should be specified as a C-style string with just the method name
(no parentheses, no SLOT macro).