Round up pool alloc sizes for alignment

To make sure that items returned from pool allocations are aligned on nice boundaries, this rounds up all pool allocation sizes to a multiple of 8.  This adds a small amount of overhead to each item.

The rounding up could be made optional with an extra parameter to the pool initialization that turned on rounding only for pools where item alignment actually matters, but I think for the extra code and complexity that would be involved, that it makes sense just to burn a little bit of extra memory and enable this all the time.

These changes obviously adjust block packing in pool pages which is why these tests now fail. I'm actually okay / happy with that because anything that alters block packing rules should be noticed in the tests, I think. In this case, I could either tweak the expected values to reflect the new packing results or tweak the block size to preserve the results.