Fix two memory leaks in CDDB dialog

Store a pointer to the start of the GLists, so that the lists can be
freed later.
Refactor some CDDB dialog code to use GString

Avoid a memory leak in error paths, and use GString to simplify the code
a little.
Avoid a memory leak of the disc ID in error paths