HAMMER 28/many: Implement zoned blockmap
* Implement a zoned blockmap. Separate B-Tree nodes, records, small blocks
of data, and large blocks of data into their own zones. Use 8MB large
blocks, 32-byte blockmap entry structures, and two layers to support
59 bits (512 petabytes).
* Create a temporary freeblock allocator so the blockmap can be tested.
It just allocates sequentially and asserts when it hits the end of the
volume. This will be replaced with a real freeblock allocator soon.
* Clean up some of the mess I created from the temporary fifo mechanism
that had been put in-place to test the major rewiring in 27.
* Adjust newfs_hammer. The 'hammer' utility has not yet been adjusted
(it can't decode blockmaps yet but will soon).
19 files changed: