rhythmdb: make it easy to create a query model for a given entry type

Messing around with queries is hard, and sometimes RBBrowserSource
isn't suitable as a base class.
rhythmdb: create better ext-db keys for entries that aren't in albums

For entries that aren't in albums (indicated by setting the album property
to an empty string), storing and retrieving art based on the title seems
like a reasonable fallback.
rhythmdb: add typedef for entry-foreach callbacks
rhythmdb: fix transfer annotations for entry lookup functions