Add (slow) AccurateRipV1 checksum calculator in pure Python.

This is a simple reference implementation meant as the base for the
updated interface.
Add Python-based AccurateRip ChecksumV1 with working range option.

Though very slow, it should serve as a useful reference implementation
which passes the unit tests.
Add lots of sanity-checking to AccurateRip ChecksumV1.

This should ensure it doesn't break when fed with oddball streams.
Update trackverify to check AccurateRip values for possible offsets.

It does this by using the trailing samples of the previous track
and the initial samples of the next track to determine
if the current track's data is correct but merely offset
by some number of PCM frames.
Preliminary addition of cdio.CDDAReader object to cdio module.

This is a PCMReader object which treats the whole CD as a single
seekable stream and will use PCM frames for the .read() and .seek()
arguments.

It should make it a lot easier to pull out partial sections of a CD
for offset and AccurateRip handling.
Finish the CD image half of CDDAReader

Seems to handle everything necessary to treat CD images as PCMReaders
with a few additional attributes to check track lengths and offsets.
Add physical drive-based support to CDDAReader object.
Add optional logging to CDDAReader.

When logging isn't active, its .read() method will allow other threads
to run.  Otherwise, its .read() method will block other threads.
This is because libcdio's logging callback mechanism doesn't take a state
field, so the current log needs to be stored in a global variable
which means it's vital that two calls to CDDAReader.read() aren't
happening at the same time.
Add documentation and unit tests for CDDAReader.

Strip out old low-level cdio interfaces.
Update cdinfo to use new CDDAReader interface.

Shift a lot of the DiscID generator options to classmethods in the process.
Convert cdplay to new CDDAReader interface.

cdplay ignores CD read offsets.  These are typically small values
so it shouldn't be a problem in practice.
Convert cd2track to new CDDAReader interface.

It now rips tracks in the specified order rather than reordering
track numbers to be sequential.  AccurateRip support still pending.
Update cd2track to use AccurateRip offset range checking.
Convert Python implementation of ChecksumV1 to C.
Remove old CDDA interface.

Widen range of offsets to check to full value.
Tweak cd2track's confidence output display.
Have CDDAReader detect empty drives.
Increment version to 2.22 alpha 2.