camera: Handle PipeWire socket not being recreated
camera: Handle PipeWire socket not being recreated

When the pipewire daemon is managed as a systemd socket service, we'll
never receive inotify created events, meaning we'll fail to reconnect if
PipeWire was restarted. Handle this by retrying immediately after
receiving an error.

If the reason for the error is PipeWire crashing, systemd will throttle
the number of restarts avoiding a busy loop, but if the error is due to
some other reason and doesn't result in a PipeWire crash, to avoid a
busy loop retrying to reconnect, give up after 10 attempts if they
happened within 10 seconds.

The portal process can still recover from this by restarting the
PipeWire socket service as it'd result in an inotify event triggering a
retry.

matthiasclasen/xdg-desktop-portal,matthiasclasen/xdg-desktop-portal,flatpak/xdg-desktop-portal,matthiasclasen/xdg-desktop-portal,matthiasclasen/xdg-desktop-portal,flatpak/xdg-desktop-portal,flatpak/xdg-desktop-portal,matthiasclasen/xdg-desktop-portal,flatpak/xdg-desktop-portal