avl tree

make insert method recursive so that user can use fold to build a tree
from a list