Optimisations for SQL queries generated for smartplaylists

The following commits contain some cosmetic changes and a few optimisations for SQL queries (specifically WHERE conditions) generated for / used by smartplaylists. Basically the idea is to use (NOT) EXISTS instead of IN because (NOT EXISTS) can exit/break after the first match/mismatch in the subquery whereas IN will always run the full sub-query.

As verified by @popcornmix in http://forum.xbmc.org/showthread.php?tid=172471&pid=1522210#pid1522210 this can lead to quite some speedup on low power machines (like the rpi).