allow for a single instance of the QSiTunesDatabase
move trackObjectForInfo:inPlaylist: so it can be used from other sources
correctly implement selection proxies

Doing it this way (with the bundle ID as a key) allows Quicksilver's "Current Selection" proxy object to get actual track and playlist objects. Previously, it would return the file for a track and nothing for a playlist.
bump version to 2.4.0