Separate QObserverInterface, QObservableInterface and QObserver

This just refactors the above classes into their own files and adusts
the #includes throughout the project.

Change-Id: Ie53b8d19f2c9f7119940d27137c4bb90cd7df805
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Rename QChangeArbiter::m_observations -> m_aspectObservations

Change-Id: I71ec74ea2cfa93feb294cf765efcc63aa7b037bc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
All Node subclasses now use same route to talk to QChangeArbiter

Node no longer inherits from QObservable as QObservable is meant for
use only by aspects.

Node stores a QChangeArbiter pointer directly so that we can call the
dedicated locking functions on it. The locking is needed for Node
subclasses as these live in the main thread which is not managed by
the QAspectmanager to work in sync with the QChangeArbiter.

Change-Id: I1151ca107b4cb29dd303371c0095c022c43bc008
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Make Node inherit from QObservableInterface

Note we are not using QObservable as we only care about a single
observer, the QChangeArbiter.

Change-Id: I7541d1160dcc4d067d11c8157ba3c1f7fa485bae
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Remove unneeded Node::event() override

Change-Id: I30fdb5fb45ea915f084899b71100474655afb128
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Use Q_NULLPTR

Change-Id: I1a30a4fba04f3cd88d81efd2c0cc2f1d81f07b80
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Only unregister change arbiter if it is same one already registered

Change-Id: I2dfdaf99409ef64c421980920d7463fca7ad9d1a
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Unify observer<->observable registration

Now that Node inherits from QObservableInterface the only difference
between register observables owned by an aspect compared with those
owned by the main thread is which QObserverList to use.

Introduce a helper function that does the common work.

Change-Id: I4a129c11f30dda8ecb9e453c3199259f5ebc8f17
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Rename QChangeArbiter::m_componentObservations -> m_nodeObservations

Change-Id: I9ad961d7c354514d2b59b3b1650302980863f9bc
Reviewed-by: Paul Lemire <paul.lemire@kdab.com>