fix writing the header
fix writing the header

<rant>
I did not know it could be _this_ hard to convert 16 bytes in text
representation to 16 actual bytes. Just converting byte-by-byte was apparently
to simple. No, we split the string into four arbitrary parts: a 4-byte number,
two 2-byte numbers, and one 8-byte number. When represented as string, these
numbers are written out hexadecimally with the least-significant hexadigit to
the right. The four sections are separated by three hyphens, but just for fun,
insert a hyphen into the last part as well. This last hyphen should be ignored.
Now comes the fun part: the first three numbers are written in "native" byte
order, which would render WAV a totally non-portable format, so I assume they
mean native for x86, and interpret that as little endian. And then, because
using only a single byte order would be way too obvious, write the last section
as a big-endian number!
</rant>

ruuda/hound,tomaka/hound,ruud-v-a/hound