wav: Sort imports as specified by go.tools/cmd/goimports.
wav: Fix decoding of 24-bit PCM audio samples.
Merge pull request #2 from mewpull/master

Fix decoding of 24-bit PCM audio samples.
AUTHORS: Fix file name in comment.
wav: Merge WAV encoder from mewkiz/audio/wav. There is some overlap between the chunk definitions in header.go and struct.go, clean it up later.
Only mention WAV specification in docs (remove brief description of format).
encoder: Implement fast paths for PCM audio samples.
LICENSE: Fix formatting, link to online version.
LICENSE: Fix formatting, link to online version.
Add license headers.
Add benchmark for decoding.
Prefix decoder tests (e.g. TestDecodeInt16 instead of TestInt64).
Improve decoding tests.
Improve decoding benchmarks. Fix grammer typos.
Verify decoded data in tests. Fixes #3
Use binary.Size instead of unsafe.Sizeof; Fixes #4
Use uint16/uint32 instead of [2]byte/[4]byte in decoder structs.
Fix incorrect file path in decode benchmark.
Improve decoder performance by 16-22%. See azul3d/audio#5

Before
BenchmarkDecodeFloat32	      30	 518081917 ns/op
BenchmarkDecodeFloat64	      30	 547400233 ns/op
BenchmarkDecodeUint8	      30	 491020468 ns/op
BenchmarkDecodeInt16	      30	 504408065 ns/op
BenchmarkDecodeInt24	      20	 657118984 ns/op
BenchmarkDecodeInt32	      30	 516224602 ns/op
BenchmarkDecodeALaw	      30	 533577493 ns/op
BenchmarkDecodeMuLaw	      30	 488511090 ns/op

After
BenchmarkDecodeFloat32	      30	 414876430 ns/op
BenchmarkDecodeFloat64	      30	 431367131 ns/op
BenchmarkDecodeUint8	      30	 390492699 ns/op
BenchmarkDecodeInt16	      30	 409407364 ns/op
BenchmarkDecodeInt24	      30	 539338196 ns/op
BenchmarkDecodeInt32	      30	 416405221 ns/op
BenchmarkDecodeALaw	      30	 445839555 ns/op
BenchmarkDecodeMuLaw	      30	 392282710 ns/op

The performance gain comes from removing binary.Size calls in the decoder's tight loops.
Improve decoder performance by 9-11%. See azul3d/audio#5

Before
BenchmarkDecodeFloat32	      30	 414876430 ns/op
BenchmarkDecodeFloat64	      30	 431367131 ns/op
BenchmarkDecodeUint8	      30	 390492699 ns/op
BenchmarkDecodeInt16	      30	 409407364 ns/op
BenchmarkDecodeInt24	      30	 539338196 ns/op
BenchmarkDecodeInt32	      30	 416405221 ns/op
BenchmarkDecodeALaw	      30	 445839555 ns/op
BenchmarkDecodeMuLaw	      30	 392282710 ns/op

After
BenchmarkDecodeFloat32	      20	 377842782 ns/op
BenchmarkDecodeFloat64	      20	 392514910 ns/op
BenchmarkDecodeUint8	      20	 359224923 ns/op
BenchmarkDecodeInt16	      20	 374009324 ns/op
BenchmarkDecodeInt24	      20	 495933463 ns/op
BenchmarkDecodeInt32	      20	 372523136 ns/op
BenchmarkDecodeALaw	      20	 409146299 ns/op
BenchmarkDecodeMuLaw	      20	 360234622 ns/op

This is done by simply moving the variable declarations outside of
the tight decoding loops.