Drop using double indirection in BST
Add preorder traversal
Add iterator_adapter
Add post-order iteration