add 'make clean' rule
implement writing

Move writing code to track class and finish implementation. Hook up
necessary bits to actually write converted files.

This works... sort of. It seems that libsndfile likes to write 44-byte
output files on occasion for no immediately obvious reason (and the
files that aren't truncated seem to only be readable by audacity, and
not most media players). Given the simplicity of the format, I'm
probably going to rip out libsndfile and replace it with my own writing
code.
rewrite file output

Ditch the broken libsndfile and write our own code to directly write the
output file. This a: always works, and b: produces files that can be
played by other players.