avoid redundant chunk header reads

* use sized deallocation in iralloct_realign
* iralloc and ixalloc always need the old size, so pass it in from the
  caller where it's often already calculated

In addition to being a micro-optimization, this makes it easy to add
support for alternate reallocation APIs taking the old size where no
read of the old metadata is required for small sizes.