Don't compute duration if FLAC returns a sample count of zero.

FLAC returns zero if the sample count is unknown, usually because
of a corrupt file.

git-svn-id: svn://daper.net/moc/trunk@2657 910807d9-36e0-0310-a014-e9ea483e2ba4
Return an error as a duration if a FLAC file couldn't be opened.

Returning the uninitialised 'length' field occasionally triggered
negative time assertions and formatted time field overflows.

git-svn-id: svn://daper.net/moc/trunk@2658 910807d9-36e0-0310-a014-e9ea483e2ba4