HAMMER Utility: Change B-Tree, inodes, and dir reblocking params, add rebalance
* The normal cleanup operations now reblock all B-Tree, inode, and directory
elements in the normal daily reblock mode instead of only the ones in
fragmented big-blocks. Bulk data is handled by the 30-day recopy mode.
* Add a new directive 'rebalance' (a future VFS ioctl). This directive will
tell the HAMMER VFS to rebalance the B-Tree. HAMMER B-Trees are always
balanced by depth but degenerate cases with minimal elements in a node
can easily build up. The new directive will rebalance the elements in
each B-Tree node.
* The hammer cleanup directive was not reblocking directories. Now it does.
It usually does not take very long to reblock the B-Tree nodes, inodes, or
directory elements. Reblocking these unconditionally, instead of just
reblocking fragmented allocation areas, keeps the B-Tree in a more optimal
layout, though there is still a lack of correlation between inode numbers
and directory scan order.