I have done a little cleanup and separated tests.
I have Added a lot of tests and done a little cleanup.

I would like to separate functions shared by both AVL and Redblack trees, yet
I do not know how to do it correctly. This is the next big step.
Rewrote redblack trees -- introduced shared includes tree.c and tree.h that
define shared functionality for all BST's. AVL trees are in order.