basic structure for db container class.  moved notes from todo into comments there.  change token to a guid.
notes
eliminate some mutable local variables
eliminate mutables from fs writeOverflow
refactor fs writeOverflow, move its helper functions inside it, which means instead of passing a bunch of arguments to each one of the helper functions, they can just capture the args passed to writeOverflow itself.
move a couple of helper functions for writeParentPages into it.  like what was done with writeOveflow.  of course, both of these functions are themselves helper functions.  taking this process to its logical end, all this stuff will end up inside BTreeSegment.Create.
checkpoint
checkpoint.  fs: move writeParentNodes down inside its caller.  make its caller a recursive function instead of relying on next/boundary vars begin mutable.
cleanup a couple of nested function naming issues
in fs btree Create, move writeLeaves into a nested subfunction
extracted the code to flush a leaf page into a function so it's not duplicated
no need for 'using System.Collections.Generic' in the fs code, since each usage of same is fully qualified with its namespace to make it easier to see so I can remember to eliminate it.
nest a couple more functions
cleaning up a few let bindings
refactoring fs writeLeaves, trying to get rid of mutables, not there yet
no more mutables in writeLeaves
remove mutables from writeParentNodes.  the code needs some cleanup, but the mutables are gone, and the tests all pass.
checkpoint
nit
diagnose/quasi-fix the weird problem where if btree.create doesn't do a seek after writing the very last page then immediately opening a cursor on a reopened filestream on that file will not be able to seek to the root page.  gotta be an actual flush issue.