smartplaylists: use simple WHERE conditions instead of expensive IN statements
smartplaylists: cosmetics in SQL queries
smartplaylists: use SELECT DISTINCT in SQL sub-queries
smartplaylists: replace SQL IN with SQL EXISTS in WHERE conditions
Speedup for opening music song library

Previously, this repeatedly parsed the same URL string over and over again
for every song, each time the list of songs was opened.

Benchmarks for CMusicDatabase::GetSongsByWhere() on a Raspberry Pi with a
library of 4115 songs:

Before patch: 14.5 seconds
After patch:   4.0 seconds
[depends/libcdio] - bump to 0.90 again (was lost during unified deps)
[rbp/omxplayer] Restructure COMXImage

Tidy up of COMXImage. Separate into file reading, encode and decode classes with separate locks.
This allows some overlap of functionality which improves the speed.
Merge pull request #3405 from popcornmix/omximagerestructure

[rbp/omxplayer] Restructure COMXImage
Merge pull request #3386 from Montellese/xsp_sql_optims

Optimisations for SQL queries generated for smartplaylists
Merge pull request #3391 from jmarshallnz/faster_getsongs

Speedup for opening music song library
Merge pull request #3402 from Memphiz/cdiobump

[depends/libcdio] - bump to 0.90 again (was lost during unified deps)