Fix endless loop when CD can't be played

Happened to me with JFSW on Linux - game wouldn't start up properly.

The problem was that SoundDriver_CD_Play returned -1 (CD_error), so CD_ErrorString ran into an endless loop.
Using CD_DriverError as code instead, so the actual error string can be obtained from the driver.
I also added an assertion and check to make sure this doesn't happen again.