cda: alternate metadata

1. There are frequently multiple matching CDDB entries for a CD, with variable quality data and occasionally for a completely different CD (and using the MusicBrainz FreeDB gateway gives back fuzzy matches that may not even have the same disc ID).  Deadbeef grabs the "first" but this is not always the correct or best data, so this patch gives a context submenu to choose between the different possible CDDB records.
2. Also added the genre and year tags extracted from the CDDB data, and added a numtracks tag.  Probably should do something with albumartist, but that distinction isn't really supported in the CDDB data.
3. Added some error handling where fails would make cddb calls crash (eg. null disc structure pointers).  There are comments that playlist locking in the thread needs fixing, but it seems OK to me?