Pulseaudio support for other sample formats

Changes in v3:
	Dropped useless reverse endian code

Changes in v2:
	* DSD support
	* Cleanup

At some point the comment was probably true, but recent
versions of pulseaudio have no trouble with any reasonable
selection of sample formats.

There are some exceptions:

* at present DSD is not (yet) supported in pulseaudio, so
  in the meantime DSD is supported by downsampling to
  a decent PCM spec

* pulseaudio supports U8, but not S8, vis-versa for mpd

* pulseaudio supports both packed and unpacked variants of
  S24 for both endian, but mpd apparently doesn't support
  non-packed 24bit samples.

I originally started this patch from the multi-format support
code in the ALSA plugin, and as such it still contains the
logic for fall-back formats, but whereas the ALSA plugin
attempts to open a stream, this isn't necessary in this case
since there's a pulse API for testing the validity of a
sample_spec.
This is "yan's rtopt" Voyage MPD real-time scheduling patch.

I've been yet unable to find contact information for "yan".  Information
is available here though:

http://www.symphonic-net.com/kubotayo/articles/voyagempd.html
yan's rtopt patch uses size_t to read the configuration options but mpd
has no support for 64-bit configuration values, so only works on 32-bit
systems.

This patch adds support for 64-bit configuration options.