Add support for non-seekable wave output files

Allow writing wave data to non seekable files, such as STDOUT
connected to a pipe.

Since the wave header contains the total data size, wave can't
tecnically be streamed this way. However, it's possible to set
the data size to the max value (0xFFFFFFFF), and clients should
read data until they hit EOF.

First, we detect whether the output file is seekable by attempting
to call `tell()` on it, and catching the ESPIPE errno that results
if it is not.

If the file is not seekable, we then attempt to set the wave
header's data size to 0xFFFFFFFF before the first write. This is
a little complicated when using the Python wave module:

First, the wave module writes the data length in the (initial) header
as nframes * sample_width * nchannels + 36, so we have to subtract
from and divide our desired data length to determine the number of
frames to set via setnframes().

Second, the wave module incorrectly uses struct.pack('<l', ...), with
a lowercase 'l' meaning *signed* data, to write the 'unsigned' wave
data length value in all Python versions prior to 3.3.2! This means we
need to catch the exception that occurs, and instead attempt to write
the max four byte signed value, 0x7FFFFFFF, with the same massaging
into a frame value as described above.

Note that when the deprecation warning is raised in Python 2.6 and
below, the correct byte value, 0xFFFFFFFF, is still written. We thus
only have to correct the value to SIGNED_MAX when we catch the exception
in Python 2.7+, but not when earlier versions raise the warning.

Further, this wave module testing must take place on a dummy, throwaway
wave writer object: Since some wave data (namely, the 'RIFF' file magic
number) will be written before the test fails, we can't just test on a
valid wave file, or the file will get two copies of the 'RIFF' magic
number written, making it invalid. Thus we must use a StringIO.

Finally, sticking to writeframesraw() is not sufficient to safely write
to a non seekable file, since the wave module's _write_header method calls
tell() a few times, which will cause an ESPIPE IOError.

Thus, if we determine the file is not seekable (or the user specifies that
the file should be treated as non-seekable), we have to wrap the file
instance in a proxy object which intercepts calls to tell() and seek()
by overriding __getattr__ and returning dummy methods for 'tell' and 'seek'.
Expand README with description and examples

Modify Makefile to generate HTML README with pandoc and
clean up README.html on clean. Ignore README.html in git.
Bug fix: Unsigned 8 bit, all samples little endian

Force little endian sample output per wave spec rather than relying
on the system native endianness.

Write 1 byte/8 bit samples as *unsigned,* again per wave spec, which
says 8 bit samples are unsigned and all greater bit depth samples are
signed.
Add context manager for SAMPLE_WIDTH

Enable easier changing of sample width in audiogen.sampler.
Fix logging

We're a library, so remove logging config setting. Set explicitly
named loggers to avoid logging to the root logger.