sink, source: Assign to reference_volume from only one place

Forcing all reference volume changes to go through
set_reference_volume_internal() makes it easier to check where the
reference volume is changed, and it also allows us to have only one
place where notifications for changed reference volume are sent.
sink-input, source-output: Assign to volume from only one place

Forcing all volume changes to go through set_volume_internal() makes
it easier to check where the stream volume is changed, and it also
allows us to have only one place where notifications for changed
volume are sent.
sink, source: Add hooks for volume changes
sink-input, source-output: Add hooks for volume changes
fixup! tizen-volume-api: add ext volume api and module
fixup! tizen-volume-api: add support for pactl
New module: module-experimental-volume-policy

This module is not meant for production use, it's only a way for me to
test the Tizen volume API. The implemented policy is the following:

* A volume control is created for every sink. When sinks are added or
  removed, volume controls are added or removed correspondingly.
* When a volume control is created, it's set as the main input and
  output volume control. (Yes, using sink volume for main input volume
  is not a sensible policy. I'm not trying to create a sensible policy
  here.) If a volume control is deleted that is currently the main
  input/output volume control, the main input and output volume
  controls become unset.
* An audio group is created. It claims to be a "music" group, but in
  reality it has nothing to do with music. The group's volume control
  is always the same as the main output volume control.