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)
Yes browse may not be handled as an external feature but we actually should do that.
But you can leave it as it is. It would take you likely a bit of time to also change the banshee and browsefeature to make them work with the changes I added to baseexternalfeature. 

But if you want to do this in another branch I will help you.