only announce capture/output capabilities if possible

OUTPUT: only if there is no other producer
CAPTURE: only if there is at least one producer
'exclusive_caps' parameter to control caps announcment

i consider the new selective capabilities announcement, that
tries to avoid announcing both CAPTURE and OUTPUT caps at the same time,
a bit hacky.
therefore the user has to explicitely select it by setting 'exclusive_caps'
to "true" for each device with the desired behaviour.

Fixes: #40
avoid duplicate setting of cardname

no use to set `cap->card` with both strlcpy() and snprintf()