If you were ever annoyed by starting Picard from the console with a
specific folder, noticing you forgot the `-d`, stopping Picard, pressing
arrow-up, adding the `-d` to the end of the line, only to notice that
this didn't help at all, this commit is for you because now the option
parsing doesn't stop after the first thing that's not an option.
If two releases with same tracklist exists, we want to take digital media over CD (ie),
because most users are tagging digital files from unknown source and don't care
which exact release it is until tracklist is matching.
Worldwide is preferred by default, because if two releases exist with same tracklist
it is more likely it is the worldwide one's than a country-specific one.
Average user is expecting cover art to be shown in such application.
Set default size for CAA images to 500px.
All providers are enabled so the behavior is the same than MusicBrainz website
(which shows cover art from (ie.) Amazon by default).
For CAA, download only approved images by default.
68bf155 was overzealous in removing the conversion routines because
although sip does convert the values for us, that doesn't help if the
wrong type is already saved (hence why we're converting it in the
first place...).
This adds back that functionality. To solve the upgrade hook issue,
a `raw_value` method is added to the ConfigSection class so that
`__getitem__` isn't invoked during the upgrade (which is what wrongly
converted the value to begin with).
Example of output:
```
D: 10:57:46 Config upgrade 1.3.0dev1 -> 1.3.0dev2: Option "preserved_tags" is now using comma instead of spaces as tag separator (PICARD-536)
```
It fixes the following exception, when starting without any pre-existing configuration file:
```
File "./picard/config_upgrade.py", line 106, in upgrade_to_v1_3_0_dev_3
_s["preferred_release_countries"].split(" ")
AttributeError: 'list' object has no attribute 'split'
```
Automatically converting the type is problematic, because if we change
the type of an option later (imagine str -> list), it'll pass the old
value to the new type constructor before any upgrade hooks are run.
With 6ff1f53, there shouldn't be any need to convert the types anyway
because sip now does that for us.
The 'convert' functionality has been repurposed here for actual format
conversions. As it happens, the only Option that needs that is the
password field (rot13).