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.