PICARD-123: actually use default drive on Mac

This doesn't implement an automatic list of available drives on Mac,
but adds the libdiscid default drive to the list of drive candidates.

This should make disc lookups available on Mac without specifying
the drive (as /dev/rdisk*) in the settings.

Note that setting things like "1" or "2" as drives should also work
with a recent libdiscid. (>= 0.6.0).
use only one definition of get_cdrom_drives()
remove generic try-except

If we do want to catch generic unexpected tracebacks,
this shouldn't be done here.

Note that `import discid` might raise OSError
when the python module is found, but not libdiscid itself.
We might want to catch that explicitely,
but that is supposed to be prevented by whoever made `discid` available.
refactor cdrom code a bit
update NEWS for 123
Merge branch 'master' into always_default_drive

Conflicts:
	picard/util/cdrom.py
Nuke QVariant, QString in favor of Python types
Fix tests in light of 6ff1f53
Remove type conversion functionality from Options

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).
Convert QByteArray to unicode to fix exception
Do not try to upgrade option if not needed.

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'
```
Moved info about the change to function's doc

As discussed with @mwiencek, we don't need to expose those to average user,
nor to mark those for translations.
Shorten lines using intermediate variables
Output hooks docstrings to log.debug

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)
```
Merge pull request #1 from zas/listoptions

Improve hooks documentation and debug output, fix few issues
Revert 68bf155, use different solution

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).
Add .DS_Store to .gitignore
Return the default Option value on TypeError

Apparently Qt saves empty QStringLists as @Invalid, which sip converts
to None in Python. Which throws a TypeError when fed back into list.
Fix deadlock introduced in c50cdf7
Fix issue related to QSettings saving booleans as strings