Refactor Btree into abstract base and iterative and recursive subclasses