hameg-hmo: Make sure the enabled_channels list is empty before populating it

Previous runs of dev_acquisition_start() keep the enabled_channels list
populated if they fail. This means that once an invalid channel
configuration was detected, it will be detected again even if the channel
configuration was changed. With this change, the list will be cleared
before being populated so that any stale entries are removed.
output: Actually return a NULL-terminated array.

This returned an array of structs with an NULL-ed element at the end.
The drivers still do this, but the wrappers now make and free a NULL-
terminated array around it.

sr_output_options_free() now takes the pointer returned by
sr_output_options_get(), instead of the module owning it.
output: Constify module options.
input: s/format/module in all naming.
input: make sr_input{_module} opaque to clients.
input: Introduce new input module API.

This is a work in progress.
input: Fix up API documentation.
input: Fixes and VCD.
input: Frontends don't need to see SR_INPUT_META_*.
input: Actually return a NULL-terminated array.
input: Fix internal API docs.