alsa-ucm: Support Playback/CaptureVolume
This allows us to support the PlaybackVolume and CaptureVolume commands in UCM, specifying a mixer control to use for hardware volume control. This only works with ports corresponding to single devices at the moment, and doesn't support stacking controls for combination ports.
The configuration is intended to provide a control (like Headphone Playback Volume), but we try to resolve to a simple mixer control (Headphone) to reuse existing volume paths.
On the UCM side, this also requires that when disabling the device for the port, the volume should be reset to some default.
When enabling/disabling combination devices, things are a bit iffy since we have no way to reset the volume before switching to a combination device. It would be nice to have a combination-transition-sequence command in UCM to handle this and other similar cases.
PlaybackSwitch and CaptureSwitch are yet to be implemented.