Preliminary conversion of Player interface back to threads.

The subprocess-based one seems a bit too fragile as it tends to crash
when pausing too close to the end of a file in Urwid's interactive mode.

It'll need to be generalized further in order to work with CD playing.
Add proper ALSA output recovery from buffer underruns and such.

Ensure .play() methods are thread-friendly.
Transform audio player state back into object.

Though similar to the old player object, hopefully this one's interface
is a little better defined.
Adjust ALSA output to avoid displaying recovery errors.
Improve error handling in audio player subthread.

Have player close audio output more aggressively when the user
requests a stop.
Convert CD playing to use new threaded player interface.
Make a few more cosmetic tweaks for PEP8 compliance.
Update copyright text.

Better late than never.
Add disc number/total to player GUI.

This is helpful for multi-disc compilations and doesn't take up
any additional space in the UI.