Remove WAV from ModPlug-supported formats.

make_modplug_data() allocates memory into which the entire sound file
is loaded.  For music module files, this is unlikely to be a problem.
However, for sampled formats where the size of the sound file is
proportional to the duration of the audio it is easy to trigger memory
exhaustion.

Amends: r2356
Use current (rather than original) sound format for all conversions.

Resolves: node/918 (White noise when playing mono file using JACK)
Remove the possiblity of triggering unacceptable ALSA delays.

This represents a return to the method used in r2550 but with
better drained buffer detection.

Amends: r2554
Make maketests.sh FFmpeg/LibAV agnostic.
Fix md5check's mishandling of filenames containing embedded spaces.
Better identify in the log which of FFmpeg or LibAV is in use.
Fix latest FFmpeg/LibAV API breakage [1 of 2]: CODEC_ID_*.

This seems to have first been introduced in LibAV (bdd1567c) then
merged into FFmpeg (e664f48b).  The removal of CODEC_ID_* in favour
of AV_CODEC_* is fine in isolation, but represents a breakage when
historic library versions are being supported.
Fix latest FFmpeg/LibAV API breakage [2 of 2]: request_channels.

The breakage introduced by AVCodecContext's 'request_channels' field
deprecation was previously recognised and remedied in FFmpeg/LibAV
(1381e9bc) but was reintroduced by LibAV (bf4b0ed1) then apparantly
merged by FFmpeg (b0edd599).
Silence compiler warning and protect against FFmpeg/LibAV API changes.
Silence compiler's "unused parameter" warnings.
Avoid unnecessary strlen() call for empty string tests.
Code cleaning prior to further work.
Code refactoring prior to further work.
Fix off-by-one bug in key counting.
Report an error on multiple attempts to bind a command.

This is to provide consistency with the configuration file.

Resolves: node/932 (Problems with Android-friendly keymap)
Ignore duplicate key bindings for a command.
Allow keys bindings to be appended to an already bound command.

This is to provide consistency with the configuration file.
Remove duplicate (and buggy) sample size code.
Remove duplicate endian conversion code.
Make use of system's byteswap code when available.