artwork: move functions related to artwork filenames into sonata.artwork
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
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