HAMMER 3/many - more core infrastructure.
* Add an in-memory B-Tree node abstraction
* Add an in-memory record abstraction.
* Put the B-Tree cursor code in its own source file.
* Fill in more of the VOP code.
* Do a major clean-up of all in-memory structures and some on-disk
structures. All the major in-memory structures now use similarly
named functions.
* Move inter-cluster link from a B-Tree leaf node to a B-Tree internal
node, giving us a left and right boundary to play with. This simplifies
the algorithms by quite a bit.
* Allow the B-Tree to be unbalanced by moving the sub-type from the B-Tree
node header to the B-Tree element structure.
* Revamp the I/O infrastructure, in particular allow B-Tree nodes to be
held passively.
* Implement a flexible B-Tree node cache. References into the B-Tree can
be cached by inodes. If the related buffer is flushed by the system, the
related cache pointers will be cleared.