hammer2 - freemap part 3 - group by allocation size
* Each freemap leaf represents ~2MB worth of storage. Assign a radix to
each leaf, limiting allocations from that leaf to that radix.
This primarily results in inodes being grouped together, improving
the performance for find, ls or other topological scans. We could
improve this but for now we'll stick with it as-is.
This mechanic also allows us to use cluster_read(). This function is
used for everything except volume-header and freemap elements.
* More formally handle logical sizes vs allocation sizes vs device I/O
sizes. For example, a 1KB inode allocates 1KB using 16KB device I/O's.
* Beef up the sysctl I/O counters.