Rework c92bd26, that change only worked because the underlying block
size was the same as the allocation size.  If they're different, we'll
end up with corrupted extent lists.

While I'm in the area, don't skip chunks that checksum OK but then don't
decompress successfully.  That's not an unexpected event when we're using
compression instead of checksums, we should only skip past an allocation
size instead of the entire chunk when that happens.

Reference #1191, #1194.