Use rnd() from testlib instead for rand() from libc, so that test case is repeatable.
CBSDelete() now returns the isolated contiguous range that was found, even if the requested deletion operation cannot be performed. (This is so that the caller can try deleting the whole block instead and manage the fragments using a fallback strategy.)
CBSFindLargest() takes a size argument, so that the caller doesn't have to re-insert the found block if it wasn't large enough.
FreelistFindLargest() takes a size argument so that the interface matches CBSFindLargest().
New function FreelistFlushToCBS() tries to move all blocks out of a free list and into a CBS.
Add fbmtest to test suite.
In MVFF, fall back from CBS to Freelist if CBS fails.