[smartplaylist] move GetFieldType to virtual const, accepting an integer
[smartplaylist] no need to clear a vector in the constructor
[smartplaylist] FieldYear is already NUMERIC_FIELD, so no need to check
[smartplaylist] move m_field to an integer to allow easier extension
[smartplaylist] factor out operator special casing and boolean queries
[smartplaylist] factor out the parameter string formatting
[smartplaylist] split negate string from operator string derivation
[smartplaylist] split out GetOperatorString for re-use
[smartplaylist] move the ++it into the for()
[smartplaylist] factor out the formatting of where clauses
[smartplaylist] cosmetic: indenting
[smartplaylist] introduce base class for database query rules, and move various functions there
[smartplaylist] remove unused AddCombination
[smartplaylist] store rules and combinations using pointers so we can extend
[smartplaylist] don't allow CSmartPlaylist access to the combination privates
[smartplaylist] store CDatabaseQueryRule pointers in CSmartPlaylistRuleCombination
[smartplaylist] remove ISmartPlaylistRule which is unused
[smartplaylist] use a factory for rule/combination creation
[smartplaylist] introduce base CDatabaseQueryRuleCombination class
[smartplaylist] adds generic GetWhereClause to CDatabaseQueryRuleCombination