Drop client connections when pipewire goes away. pipewire-pulse daemon can remain running and pulseaudio clients will be able to connect again once pipewire is up and running.
This starts breaking up the giant monolith that is the pulse-server.c
code into more manageable chunks by trying to split the module code into
individual compilation units.
Send server change events to subscribers, when default nodes change due
to some nodes being added/removed/changed, also if there is no metadata
change. Make sure the event is consistent with the result from
find_device at the time.
Previously, these were not necessarily sent, or information from
find_device immediately after the event might not reflect the change
yet.
We don't need to bind to the core object again, we can just use the
events on the manager core.
We don't actually have info when the Core is added so don't try to
use it to get defaults for the client.
Use the manager core info in server info.