Detect EOF at sink, not at source.

This accounts for any samples that are queued up for the sink to play after the
source has already EOF'd.
Do a bit of AudioSink cleanup.
FLAC: Fix EOF reporting.
Move BytesPerSample() to AudioSource.

BytesPerSample() is now always calculated from the OutputSampleFormat().

This removes a lot of redundant code.
Move Path() to AudioSource too.

AudioSource now has a non-default constructor, to store the path.
Use libsndfile for oggs and wavs.

This is a bit of a cop-out, as we were going to use libvorbisfile for oggs.
However, libsndfile adds support for several other formats, like wav etc.

Why not libvorbisfile?  Because libvorbisfile makes us deal with things like
changing sample rates mid-track (!!).  Rather than dramatically refactor playd
to cope with this, we'll just use libsndfile, eh?

A possible thing to fix up in this commit is an implicit assumption that int is
32 bits.
Add static assertion for int assumption.
Remove audio source cpp include guards.
Out, damned SoX.

This commit removes the SoX audio source and most, if not yet all, references
to libsox.