Read partial pieces from storage

This one *seems* to work. I can't see why it wouldn't. But careful reviewing of it would comfort me.

It would have been much cleaner with simply `.filter().map()`, but since object are just references, it would have destroyed the original piece-files map...

Also any stupid range (like [a-b] with a > b, or a == b) should be handled properly.

`a` defaults to `0` /  `b` defaults to `piecesLength`.