ladspa: free memory allocated for control ports

This memory is allocated during the getopts function and
needs to be freed to avoid memory leaks in long-running
libsox-based processes.
ladspa: call cleanup function if given

Some plugins have cleanup functions to deallocate memory after
instantiation.  This must be called after deactivate.
ladspa: support multi-channel plugins and chains

Stereo (and multi-channel) LADSPA plugins are now supported
out-of-the box as long as the SoX effects chain surrounding them
matches the number of input/output ports of the LADSPA plugin.

Mono LADSPA plugins continue to be supported, and may be cloned
with the "-r" switch to match the number of input/output
channels in the effects chain.

LADSPA plugins which modify the number of channels remain
unsupported.  SoX already has native support for remapping
channels.

Plugins with a single input and output port and mono input
should continue to work as-is and there should be no
regressions.

unless there exists a LADSPA plugin which takes interleaved
data.  I've yet to find a LADSPA plugin which expects
interleaved data, so one can only assume nobody else uses/or
supports interleaved data in LADSPA.

Plugins tested with this patch:

various TAP plugins (http://tap-plugins.sf.net/)
* echo (stereo)
* pinknoise (mono)
* limiter (mono)

bs2b-ladspa (stereo) (http://bs2b.sf.net/)
ladspa: support M:N channel mapping in plugins

This allows plugins such as the LADSPA vocoder to work.

Using the formant.wav and carrier.wav samples from
http://www.sirlab.de/linux/descr_vocoder.html the following
command-line is successful:

sox -M formant.wav carrier.wav \
  -b 16 result.wav rate 44100 \
  ladspa vocoder 16 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Using 16-bit (or higher) output reduces the noise-floor hiss
greatly since LADSPA processing is done as 32-bit float.
ladspa: Update documentation
Merge branch 'ladspa-multiport'