Add `update_constants` command to setup.py

It retrieves and parses attributes.pot and countries.pot files
from transifex to extract various constants needed in Picard.
It helps to keep those in sync with MusicBrainz website.

It then generates:
- picard/attributes.py containing cover art types, medium formats, and release group types
- picard/countries.py containing countries

`update_constants` command replaces `update_countries`
Update picard/attributes.py and picard/countries.py

New setup.py update_constants command was used.
Add ugettext_attr() function needed to translate attributes

Since contexts are used in attributes.pot, and python gettext do not yet
support contexts, a minor hack is used to make it work, this workaround
is used in django and babel, see ugettext_ctxt().
Build RELEASE_FORMATS and CAA_TYPES from MB_ATTRIBUTES
Ensure proper translation of cover art types
Build RELEASE_PRIMARY_GROUPS and RELEASE_SECONDARY_GROUPS from MB_ATTRIBUTES
Build release type score sliders UI dynamically.
Convert `release_type_scores` option to `ListOption`

We had a space-separated list of name,value tuples ("Album 0.5 Other 0.4"),
and two helper functions to load and save data in the correct format
(`load_release_type_scores` and `save_release_type_scores`).

Since option is converted to recently-introduced ListOption, data is now saved
as a list of tuples, eventually converted to dict when needed.
It simplifies code, and also prevents an issue if it comes we have a release group type
with a space in its name.

An upgrade hook was added to handle this change on Picard upgrade.
Update NEWS.txt
Make Cover Art Type selector use available space
PEP8 fixes.
Merge pull request #254 from zas/cover_art_types

Use attributes.pot from musicbrainz server to generate up-to-date cover art types and medium formats lists