Cover art support

**More information about the project:**
http://mixxx.org/wiki/doku.php/cover_art_support

**Skin for tests:**
- Deere1280x800-WXGA

**Supported features:**
- analysis
- autodj
- crates
- library
- history
- playlist

**First Part**
- [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
- [x] md5 hash
- [x] do not show cover widget for not supported features:
    - banshee
    - browse
    - itunes
    - recordings
    - rhythmbox
    - traktor

**Second Part**
https://github.com/cardinot/mixxx/pull/1
- [x] redesign dlgtrackinfo to show covers
- [x] load cover in dlgtrackinfo
- [x] edit cover location in dlgtrackinfo
- [x] unset cover (load default)
- [x] reload cover from metadata
- [x] warning box issue
- [x] icon for each cover_art action
- [x] copy cover from external dir to track dir (if the user changes the cover)

**Third Part**
https://github.com/cardinot/mixxx/pull/2
- [x] add cover_art column in Library feature
- [x] add cover_art column in AutoDJ feature
- [x] add cover_art column in Analyze feature
- [x] add cover_art column in Playlists feature
- [x] add cover_art column in Crates feature
- [x] adjust cover art size
- [x] delay cover loading when the user is scrolling fast
- [x] batch updates (avoiding doing many writes in a short time)
> You should still fix the comment though and explain what this is actually doing!

As you know, we have a parameter in ```requestPixmap(...)``` which indicates if it must try to load&search a cover:

``` c++
    QPixmap requestPixmap(int trackId,
                          const QString& coverLocation = QString(),
                          const QString& md5Hash = QString(),
                          const bool tryLoadAndSearch = true,
                          const bool croppedPixmap = false,
                          const bool issueRepaint = false);
```

It means that when ```tryLoadAndSearch == false``` the method will just look into the PixmapCache (getting covers which are already loaded and ready and not try to load one from a coverLocation OR search into id3tag or trackDir)

The slot ```slotLock(bool lock)``` is just handling it into ```CoverDelegate()```. Locking/blocking CoverDelegate, in order to forbid that it keep doing what it should normally do (try search, load and display covers)... maybe the name ```slotLock``` is not ideal, but the explanation is there...