ENH: Add feature to read/write floating point WAV files.

The enhancement adds a feature to read and write floating point WAV files to
`scipy.io.wavfile.read` and `scipy.io.wavfile.write` functions where currently
only integer types are supported.
ENH: Reject unsupported data type by scipy.io.wavfile.write()
TST: io: don't use unsupported integer formats in wave file tests
BUG: io/wavfile: guess EXTENSIBLE format is PCM

Plus minor code cleanups, and skip the 'fact' chunk.
Merge pull request #2440 from  7islands/wavfile-floating-point

ENH: wavfile: read/write floating point WAV files

Also, refuse to write malformed wav files.