Make extent list management more efficient during checkpoints

Before merging extent lists, check if one is bigger than the other, and walk through the smaller one.  This requires that we track sizes for the temporary avail list we build during checkpoints, otherwise we can't make the size tracking match up after the merge.