sourcestream: make resilient against pipewire restarts
when pipewire restarts the streams get destroyed out from under us. this would then eventually cause double free crashes when the actual destructor runs. to prevent this problem we register a destroy callback and unset the relevant pointer