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.
Merge pull request #119 from zas/searchmbid

Make Picard search box smart enough to detect mbids.
Merge pull request #128 from kepstin/vocals-rel-fix

Fix performed vocals relationship with no vocal type set
Remove some obsolete code

Python 2.5 is no longer supported.
Merge remote-tracking branch 'zas/info_dialog2'

Conflicts:
	picard/tagger.py
Merge remote-tracking branch 'upstream/master'