Partial checkin, rearranged some test code to accommodate new tests for deleting from a child that has too few records.
Added implementation for deleting record from subtrees that don't have enough nodes, and also accounted for root node during merging. What's left over is a test for removing a single record root, removing a record from non single record root, and asserts for deleting a record from a subtree that has fewer records then the tree order.
Implemented the B-tree completely and written all the tests except tests for duplicates insertion. I seem to have found an issue with that so checking in current work in order to preserve it, and I'll debug and unit tests the duplicates problems a bit later.
B-tree completed, tests written for all cases I could think of. Duplicates are covered in every tests that uses mixed tree.