Implement Brymen BM25x series as a serial DMM.

The Brymen BM25x series supports the BC-20X that is an opto-isolated
serial cable. The link seems to be unidirectional i.e. when activated
the DMM periodically sends updates to the host while the host cannot
control the DMM in any way.

The protocol is documented in "6000-count-digital-multimeters-r1.pdf"
that is available from the manufacturer. Every 15 byte packet consists
of a bitmap where the bits correspond to segments or symbols on the
LCD display i.e. the DMM essentially sends the contents of its screen
to the host in every update. This driver then decodes the measured
quantity, unit and its value from the bitmap.
output/wav: Add 'scale' option.

Audio tools processing WAV failes generally need the samples to be in
the range -1 to +1. The scale option adds postprocessing to any samples
going into a WAV file, by dividing the sample values by the given factor.
output: Modules can keep track of option resources without wrapper help.
output: Move option checks to the wrapper.

Output modules are now guaranteed:
  - Every option is always given, with the default value if not supplied
    by the user, and is the right GVariantType.
  - No invalid options are ever passed.
output: Check options hash before destroying.
hameg-hmo: Implement SR_CONF_SCAN_OPTIONS.
output/vcd: Drop obsolete string.
configure.ac: Don't build BeagleLogic where a build would fail.

The BeagleLogic driver needs sys/mman.h and sys/ioctl.h in order to
build, so disable the driver if those headers aren't available.

This is the case (for example) on MinGW.
Fix typo in the Hameg HMO driver and add some error message for when the float comparison breaks
C++ bindings: Reimplement enums.py using doxygen XML output instead of gccxml.
C++ bindings: Attach documentation to enum wrapper classes.
bindings: Transfer C++ documentation strings to Python and Java wrappers.
python: Add documentation generation.
java: Add documentation generation.
C++: Add parameter documentation and additional method descriptions.
bindings: Transfer C++ method parameter documentation to Python/Java bindings.
Doxygen: Add a few missing @param lines for sessions.

This fixes a bunch of Doxygen warnings.
Doxygen: Silence Doxygen warnings by default.

This allows for a clean build per default. Developers can enable
those switches while writing documentation to get a few useful
warnings.
Makefile.am: Silence some more Doxygen output.

This silences stuff like this (among others), depending on the
Doxygen version used:

  Warning: Tag `XML_SCHEMA' at line 1814 of file `Doxyfile' has become
  obsolete. To avoid this warning please remove this line from your
  configuration file or upgrade it using "doxygen -u"
trigger.c: Add Doxygen @file and @defgroup tags.