B-tree Implementation
B-trees use key to find the value.
In "BTree.cs", which uses "BTreeNode.cs", the assumption is that keys are unique (i.e., each key has only one value attributed to it)
but in "BTree2.cs", which uses "BTreeNode2.cs", it is assumed that two or more values can share the same key (i.e., keys are not necessarily unique).