sound: Improve edge cases and fix bugs with the input/output selection
Streamline the signal handling for changes from the gvc side and cleanup the flow when the user interacts with the input/output switcher.
This fixes a few bugs with the input/output switcher, especially for bluetooth headsets and when there's no internal microphone available. See commit messages for details.