fix allocation

put_putblock changes the meaning at this line in hashfs.c:
  build_uniq_hash_index(h->put_blocks, h->put_hashnos, &h->put_putblock);

Before that line it means "all the blocks", after that line it means
"number of unique blocks".
To allocate the array correctly we need all the blocks.

So use put_nblocks (which is >= all the blocks).
add missing sxi_md_cleanup (bb #540, bb #541)