fillFromPieces
Places the pieces hashes at the piece layer, pads the piece layer with the proper pad hash (Merkle.pad), computes the nodes from the piece layer up to the root, and computes each piece's block-layer descendants as padding so the tree is internally consistent for the levels at and above the piece layer.
This mirrors how libtorrent reconstructs a tree from just the piece layer (load_piece_layer / build_vector for piece_layer mode). It does not invent real block hashes. Only the piece layer and above are meaningful.
Parameters
pieces
exactly numPieces piece hashes, in order.