Self Balancing Binary Search Tree (AVL implementation)