ControlManager: Allow just a single listener to be removed
Add an overload of ControlManager::removeListener() that takes an additional ControlManager::ChangeType parameter, only the listener for that change type is removed. Used by VolumeFeedback to change the listener for a volume change on a specified mixer, while still maintaining the listener for a global master change. Tidied up debug messages (log before the action to which it refers). Make Listener a private struct (it doesn't need to be a public class).
Showing with 183 additions and 137 deletions