Handle Performer tags stored in ID3v2.3

Performer tags are stored as part of the IPLS tag in ID3v2.3 and this is
put into the TIPL tag when read by mutagen. This fix adds unknown TIPL
roles as Performer tags.
Remove sorting for displayed multi-value tags and provide a sort tags plugin

Picard stores tags unsorted but displays them sorted and this is
inconsistent.

This commit removes display sorting of multi-value tags from Picard
improves consistency by displaying what will be / is actually saved.

This commit also provides a plug-in to allow user to sort tags both
displayed and stored in the file.
Add option for user to set concatenation character(s) for id3v23 multi-values
Improve displayed values and comparison  when saving id3v23
Fix original values metadata class after save
Handle TypeError on flattening
Address peer review comments

Improved object handling on file-save. Improved code for identification
of id3v23 true multi-value fields. etc.
Remove spurious exception handler.
Resequence change notes.
Fix terminology.
Another minor terminology tweak in News.txt
Remove incorrect comment.
Fix function and white space
Modify and move setup_gettext() in its own file.

Unit tests will need to use gettext, so i modified a bit setup_gettext()
and it can now be easily imported.
I add to change the code a bit to make it work, i also fixed an issue with
locale under linux that was occuring when one imported this module.
Add functions to convert bytes to human readable form.

Binary and decimal modes are supported (MB and MiB ie.)
It supports i18n using gettext and locale.
Precision can be modified if needed, by default it is using 1 digit (if needed).

Extensive tests were written, the toughest was to make them work for
both default C locale and fr_FR.UTF-8 locale (ofc it is possible to test for more
locales...). If one locale isn't available on testing system, test is skipped.
fr locale was chosen because decimal point is replaced by a comma and byte units
becomes "octet" units (1.5 MB in english -> 1,5 Mo in french).
Use bytes2human to display file size in Info dialog.
Display cover art images sizes and dimensions in Info dialog
Make Picard search box smart enough to detect mbids.

If a release mbid is given (search type = Album) it will try to load it as
when using web browser tagger link.

If string looks like a known entity (artist, release-group, label, track)
it will open browser on corresponding url.

Examples:
Select box on Album + "abb7caf1-ac93-48e1-a066-60caad07e1a7" -> load release (http://musicbrainz.org/release/abb7caf1-ac93-48e1-a066-60caad07e1a7)

Select box on anything + "http://musicbrainz.org/artist/c19ff12b-058f-44a8-b245-b0efb4752925" -> open browser on Artist page
"ARTIST := c19ff12b-058f-44a8-b245-b0efb4752925 !!" -> open Artist page
Complete the list of known entities.
Fix performed vocals attribute with no vocal type set

This fixes a regression since e16b2533c where picard no saves vocal ARs
with no type set as generic "performer" ars; appearing in the UI like
    Performer []: Some Vocalist
    Performer [guest]: Some Guest Vocalist

Add special handling for the vocal relationship type to use a fallback
string if there is no vocal type set. The fallback string is "vocals"
(earlier versions of picard used "vocal"), for consistancy with the
current vocal type strings, which look like "lead vocals", "background
vocals", etc.