thread: name threads and show them in log
thread: use Gio instead of threads to download DNDed covers
artwork: move functions related to artwork filenames into sonata.artwork
thread: MPD connections are not in a thread anymore

* mpd.MPDClient() is not thread-safe, per python-mpd2 documentation
* there were race conditions if the connection was too slow
* this thread was doing too much things outside of the main thread
* long commands were blocking Sonata anyway due to bad threading management

It works as good (and as bad) as before. It makes sense to have the
connection to MPD not blocking the UI, but it has to be done correctly,
and I prefer to remove all the bad threading management now, and
refactor this part later if it causes problem and we find a good way to
do it.
artwork: dedent code
artwork: fix art cache loading/saving

The art cache is a dictionary which is simply dumped and loaded using eval()
(!), but the SongRecord object, used as a cache key was dumped as a complex
structure which couldn't be loaded back (something like "<SongRecord...>".
So, even if the cache was saved, it could never be loaded afterwards.

Now, the key is a simple tuple, which makes everything work.
artwork: split of artwork._library_artwork_update to remove entangled code

There's much less branching now, although it's still quite complex to
follow...
artwork: move artwork cache to a dedicated class
config: shortcut to access current music dir
library: detach library's model while updating the library view

This:

* increase slightly the performance while updating the library's model,
  since it redisplays, sorts, and does stuff related to the view only once
* also prevents the view from emitting too much events when the model
  is being updated - this is clearly visible when logging the scroll events
  while switching the type of the view; Artwork library updates are much
  less intensive now (library used to pile down stuff to the library's
  artwork updater, it's much less the case now).
library: don't overupdate the library's artworks
artwork: add tests for artwork path manipulation functions

Sonata doesn't check as extensively for artwork file names now as before.
Instead, it just assumes the correct case is present. This reduce a bit
Sonata activity relatively to the filesystem.
WIP: remote artwork
WIP: ArtworkUpdateWorker