Cover art support

- implement database scheme
- search for embedded cover
- search for cover in track directory
- save covers in disk cache
- search for covers in disk cache
- minimal ui (display covers in lower left corner)
- handle existing users
- LRU cache
It is not really a problem, but in general it is a good idea to save CPU where ever possible.
I have tested a bit and the pointer version makes no big difference.
But if we change it to sending a QString pointer to the location makes a difference.
I have measured the whole call and it is about 10% faster 
Debug [Main]: Stat("QPixmapCache::find","count=60,sum=6.7203e+08ns,average=1.12005e+07ns,min=1.45486e+06ns,max=2.35139e+07ns,variance=1.38093e+13ns^2,stddev=3.71608e+06ns")
Debug [Main]: Stat("QPixmapCache::find","count=36,sum=3.79872e+08ns,average=1.0552e+07ns,min=2.18023e+06ns,max=1.49261e+07ns,variance=1.01931e+13ns^2,stddev=3.19267e+06ns")

```
 {
        ScopedTimer t("QPixmapCache::find");
        emit(pixmapFound(trackId, &coverLocation));
 }
...
void WCoverArt::slotPixmapFound(int trackId, QString* pCoverLocation)
...
QPixmapCache::find(*pCoverLocation, &m_currentCover);
```