Sonata automatically fetches lyrics in a new thread.

Before, the lyric plugin had to do it by itself, which means *each*
lyric plugins had to do it by themselves.
Now, the plugin code is launched into a new thread, not matter what.
config: refactor the configuration module to remove duplicates

It now describes how the whole configuration looks like, and then create automatically
all the accessors, with the right values loaded from the configuration file,
and also knows how to write back the values into this file.

It could be even further improved if the attributes had the same name as the option
in the file, but that's already much better than before.

This refactor also removed a few duplicates and unused values...
Backward compatible fix when loading some  wrongly-serialized values

I have some int-values in my config file which are set to "None". This
definitively can't be loaded as an integer and use to be silently
ignored before.
Provide a basic Song object to start the removal of mpdhelper.get()
Properly implement comparison for Song objects
Implement Song.track to return the track number of the song
Implement Song.pos to return the position of the song in the playlist
Implement Song.time
Implement Song.artist
Implement Song.disc
Implement Song.album
Implement Song.file
Implement Song.title
Implement Song.date
Remove call to mpdh.get(xxx, 'directory'), it's not a Song information
Return a special object for MPD.count() with integer values
Don't use mpdh.get() to access the results of MPD.playlists()
Implement Song.name
Remove last use of mpdhelper.get()
Be smarter when accessing SongResult attributes