ErasureCode: get rid of extra copy when encoding

The substr_of bufferlist method is used to reduce the copies to the strict minimum. It is both able to split bufferptr when they are larger than a chunk and to concatenate them when they are smaller.