erasure-code: bail out early if chunks to be decoded is empty
otherwise we will read from uninitialized memory for blocksize.
update tests accordingly, as the number of decoded chunks is 0 if
* the number of available chunks is 0 and
* the number of requested chunks is not 0
after this change, because, in that case, the decode fails before any
chunk is allocated. but otherwise, the output chunks are still
allocated. so instead checking the number of output chunks, the test is
removed.