Cover art support

- [x] implement database scheme
- [x] search for embedded cover
- [x] search for cover in track directory
- [x] save covers in disk cache
- [x] search for covers in disk cache
- [x] minimal ui (display covers in lower left corner)
- [x] handle existing users
- [x] LRU cache
- [x] unit tests
OK, here the results:
There is no notable speed change with key scrolling. However the master version is still much faster.
I think it is because we have still 3 times pixmap copy and the drawing in the call tree.

Conclusion: use a delay, to only render the picture when scrolling is stopped.

However, this patch bring a  ~20 % speed up.
```
diff --git a/src/widget/wcoverart.cpp b/src/widget/wcoverart.cpp
index 5973d0c..e6cfc01 100644
--- a/src/widget/wcoverart.cpp
+++ b/src/widget/wcoverart.cpp
@@ -87,7 +87,7 @@ void WCoverArt::slotHideCoverArt() {
 void WCoverArt::slotPixmapFound(int trackId) {
     if (m_lastRequestedTrackId == trackId) {
         //m_sCoverTitle = location.mid(location.lastIndexOf("/") + 1);
-        m_currentCover = m_lastRequestedPixmap;
+        //m_currentCover = m_lastRequestedPixmap;
         m_currentScaledCover = m_currentCover;//scaledCoverArt(m_currentCover);
         m_bDefaultCover = false;
         update();
@@ -102,9 +102,9 @@ void WCoverArt::slotLoadCoverArt(const QString& coverLocation, int trackId) {
     setToDefault();
 
     m_lastRequestedTrackId = trackId;
-    m_lastRequestedPixmap = QPixmap();
+    //m_lastRequestedPixmap = QPixmap();
     CoverArtCache::instance()->requestPixmap(trackId,
-                                             m_lastRequestedPixmap,
+                                             m_currentCover,
                                              coverLocation);
 }
 
```