Rather than having widget/widget2/widget_callback fields in the struct
alsa_elem, have a list of callbacks and allow private data to be
passed to callbacks.
When the label of the button for the boolean widget changes, the size
of the button was also changing. This commit sets the minimum size of
the widget so that it will accommodate both labels.