A B+Tree with many features.
At the moment, the on-disk format is NOT stable.  It will almost
certainly change in the future.  Please do not use the BTree to store
data across invocations of the JVM.
At the moment, the BTree does not support deleting or replacing values.
There are three kinds of classes in this package:
  -  The {@see
       com.sun.electric.database.geometry.btree.BTree} class
       itself, which provides the B+Tree data structure parameterized
       over a key type (K), value type (V), and optional summary (see
       below) type (S).
  -  Subclasses of {@see
       com.sun.electric.database.geometry.btree.NodeCursor}, which are
       package-private.  These act like smart "pointers" to individual
       pages within the BTree and help to simplify BTree.java.
  
-  The {@see com.sun.electric.database.geometry.btree.PageStorage}
       class and subclasses.  A PageStorage is sort of like
       a HashMap<Integer,byte[]> with a few extra
       features and restrictions.  A CachingPageStorage is like a
       PageStorage that lets you write directly to the byte[]'s that
       are resident in memory.
The subpackage unboxed provides "unboxed"
versions of many data structures; please take a brief look at it
first.