Deprecated failUnlessEqual() -> assertEqual()

http://docs.python.org/2/library/unittest.html#deprecated-aliases
Deprecated failIfEqual() -> assertNotEqual()

http://docs.python.org/2/library/unittest.html#deprecated-aliases
Deprecated failUnlessRaises() -> assertRaises()

http://docs.python.org/2/library/unittest.html#deprecated-aliases
Deprecated failUnlessAlmostEqual() -> assertAlmostEqual()

http://docs.python.org/2/library/unittest.html#deprecated-aliases
Handle configuration file versions.

version_info was renamed PICARD_VERSION
version_string was renamed PICARD_VERSION_STR
short version string is stored in PICARD_VERSION_STR_SHORT (for display)

Hooks can be created to handle upgrades (ie. options renaming), see config.register_upgrade_hook() and config.run_upgrade_hooks()
PEP8 compliance fixes
Merge pull request #139 from zas/deprecated_unittest_aliases

Replace deprecated unittest aliases
pep8 fixes
Merge pull request #140 from zas/pep8

PEP8 compliance fixes
Use info dialog to display per-album error log.

When an error occurs during loading of a release, it will be visible
in info dialog for this release (which was unused).

New icon was added to mark visually releases with errors, and scrollbars
will appear in info dialog if needed.
Make modified releases a bit more obvious using a specific icon.
Display cover art errors associated with album if any
Switch tab title to Errors when needed.
Merge pull request #131 from zas/update_config_2

Handle configuration file versions
Merge pull request #127 from zas/album_error

Improve feedback regarding album status
Use python-discid instead of libdiscid.

Python-discid (http://python-discid.readthedocs.org) is a Python binding of libdiscid.
It resolves http://tickets.musicbrainz.org/browse/PICARD-503
Use discid/libdiscid drive auto detection, especially on first start

It will add default drive as returned by libdiscid to the list of known drives
Ie. on linux, list is : /dev/cdrom, /dev/sr0, /dev/sr1 (default link + 2 sata cd readers)

On first start it will populate the list with default drive provided by libdiscid,
which means Picard is now able to scan CD without going to Options (to set
cd reader) first, which was not the case before.
Add uniqify() helper function to uniqify a list

From http://www.peterbe.com/plog/uniqifiers-benchmark
Ensure each drive is present at most once in the list.

When Picard legacy method to list drives returns one that is already
set by python-discid (which is very likely on Windows systems).
Also try to use python-libdiscid

python-libdiscid is another libdiscid binding that also provides a python-discid
compatible interface in libdiscid.compat.discid.

Signed-off-by: Sebastian Ramacher <sebastian+dev@ramacher.at>