I'm going to revert this mess
reverting all that brain damage
forgot z = z->p->p, which was badness
about to refactor bst.c and rbtree.c into one file, they are too tightly coupled to separate
in the process of consolidating rbtree to bst