function pack_block_diagonal

Pack small graphs into a block-diagonal big graph for batching.

Concatenates features and builds block-diagonal adjacency (dense or sparse).