Balance tree

Though you inherit 'delete' from `BST`, you'll need to update it to ensure that the tree is properly rebalanced after a node is deleted.  The rotations involved in deleting non-leaf nodes will take care of local balance, but the balance of nodes higher up in the tree also need to be checked and repaired.