Immutable Avl Tree

An immutable version of the AVL Tree. Should be thread safe.

Signed-off-by: Tim Henderson <tim.tadh@gmail.com>