The 'installed' signal can be used to know that there are no
known objects that are being prepared internally, so the object
manager is ready to use.
This also improves internal state management so that the 'objects-changed'
signal cannot be fired earlier than it should. Previously there
were corner cases with complex proxy features, as the object manager
relied on the fact that after a core 'sync' it is safe to assume
that all proxies are augmented... that's not always the case.
* core no longer exposes create_remote/local_object
* node, device & link have constructor methods
to enable the create_remote_object functionality
* added WpImplNode to wrap pw_impl_node and allow creating
"local" node instances
* added WpSpaDevice to wrap spa_device and allow creating
"local" device instances
* exporting objects in all cases now happens by requesting
FEATURE_BOUND from the proxy, eliminating the need for WpExported
* replaced WpMonitor by new, simpler code directly in module-monitor
* the proxy type lookup table in WpProxy is gone, we now
use a field on the class structure of every WpProxy subclass
and iterate through all the class structures instead; this is
more flexible and extensible