Update copyright notices for 2013.
Optimize FrameList comparison for better speed.

Add FloatFrameList comparison.
Remove __blank__ helper functions from pcm module.
Update low-level bitstream handlers to work with structs

instead of arrays of packed integers which need
bit shifting to extract values from.
Minor optimization to low-level bitstream routines.
Restore -j option to tracksplit utility.

Add .seek() method to WaveReader object.

tracksplit will use multiprocessing by leveraging
PCMReaders' .seek() methods to bounce very quickly
to a given position in a stream.
Add .seek() support to C-based FlacDecoder.

Add unit tests for .seek() method, if supported by an audio format's
PCMReader as returned by .to_pcm().
Update WavPack and ALAC decoders to be seekable.

As usual, ALAC's design makes this harder than it needs to be.
Add seek capability to True Audio, AIFF and Sun AU.
Update ALAC encoder to use total_pcm_frames, if available.

This allows is to populate a dummy moov atom of the correct size
which can be re-populated once the actual ALAC frame sizes
and their absolute file offsets are known.
Lots of M4A atom reorganization.

Attempting to add examples to each one to make them easier to follow.
Finish M4A atom documentation overhaul.
Add internal linking to M4A atoms documentation.
Reimplement PCMReaderWindow as pair of stream handlers.

PCMReaderHead stops a stream at the given number of PCM frames
(analagous to head(1)) while PCMReaderDeHead chops off the
initial number of PCM frames and returns the rest.

This makes the logic a lot easier to understand
and leaves little room for bugs to hide.
Restore old-style operation to tracksplit when run with single job.

This is more untuitive and a good workaround for formats
whose decoders don't have a working .seek() method.
Update FLAC encoding to total_pcm_frames to widen padding.

By estimating the number of seekpoints in advance,
the padding can be made large enough to accomodate it in advance.
Fix ALAC seektable parsing to catch more errors.

Update ALAC seektable generation bugs.

Adjust buffer handling functions to work in chunks
to avoid allocating huge blobs of memory at once
(which usually only happens by accident)
and fix Python bitstream methods to raise ValueErrors
on negative length calls.
Update low-level FIFO buffer to be simpler and more consistent.

Routines used to push and pop stuff from it in all sorts of
haphazard ways, but its interface has been adjusted
to be a simple collection of buf_write/buf_read calls
with macros used to determine its size, window start and window end points.
Add format tests with total_pcm_frames option and without.

Some encoders will run slightly different code paths for both
so it's important both get run through the same set of tests.
PCMReader raises exception at read() time if subprocess fails.

That is, when the PCM frame data runs out, it calls .wait()
during the call to .read() and fails at that point
rather than waiting until .close() is called.