Add linear_combination_of_weights()

It is a safer alternative to reduce(lambda x, y: x + y[0] * y[1] / total, parts, 0.0) expression
which was requiring a separated calculation of total, prone to errors.
Fix release similarity calculation

Total didn't include all weights (ie. weights["format"] wasn't added), leading
to incorrect result, eventually > 1.0

The fix consists mostly to get rid of separated calculation of the total, using
previously introduced linear_combination_of_weights().

- partly rewrite compare_to_track() and compare_to_release()
- move parts building to new compare_to_release_parts() and drop return_parts parameter
- drop calculation of totals since this is handled in linear_combination_of_weights()
Add tests for util.linear_combination_of_weights
Merge pull request #307 from zas/fix_probability

Fix probability calculation, release similarities
Make warnings show if not debugging
Make plugins load in consistent order.

See http://forums.musicbrainz.org/viewtopic.php?id=4939.
Fix dist directory structure for plugins

Resolves PICARD-600
Fix bug picked up by Travis
Improve code and add top-level sort
Add back deleted blank line
Merge pull request #308 from Sophist-UK/sophist_improve_plugin_load_consistency_and_messages

Make plugins load in consistent order ...
Workaround: setup.py regen_pot_file didn't work with babel < 1.0

A babel bug prevents `input_dirs` to be parsed correctly with babel pre-1.0 versions.
Using regen_pot_file with babel 0.9.6 leads to an empty pot file (but header).
The fix appears in babel 1.0 Changelog:
- fix ‘input_dirs’ option for setuptools integration (ticket #232, initial patch by Étienne Bersac)

The workaround just splits `input_dirs` as it should when old babel versions are used.
Tweak Standardise Performers

Since we have a try/except block so that this will run on previous
versions, tweak the API_VERSIONS so that it will load on these versions
of Picard.
Merge pull request #312 from Sophist-UK/sophist_tweak_standardise_performers

Tweak Standardise Performers
Merge pull request #310 from Sophist-UK/sophist_fix_plugin_file_selections

PICARD-600: Fix dist directory structure for plugins
Merge pull request #311 from zas/input_dirs_babel_0.9.6_workaround

Workaround: setup.py regen_pot_file didn't work with babel < 1.0
PICARD-597: use named place holders in translatable strings

- modify set_statusbar_message(): drop hacky %s replacement, it shouldn't be needed anyway
- add named arguments echo and translate to it, to cover all needs
- rewrite translatable strings to use named place holders
- fix up some messages, add plural forms if needed

http://tickets.musicbrainz.org/browse/PICARD-597
Remove unneeded toBool() forgotten in commit 6ff1f5350

Traceback (most recent call last):
  File "./picard/acoustid.py", line 219, in _on_fpcalc_error
    finished = process.property('picard_finished').toBool()
AttributeError: 'bool' object has no attribute 'toBool'
Merge pull request #309 from zas/PICARD-597

PICARD-597: use named place holders in translatable strings
Update pot file