Successor,Predecessor for RB tree and Splay Tree

Add new methods to Red-Black Tree and Splay Tree:

min() - find minimum key
max() - find maximum key
predecessor(k) - find maximum key which is less than k
successor(k) - find minimum key which is greater than k
__iter__() - iterate over all keys in ascending order

Since these methods are extensions to add,remove,__contains__ interface
old classes are renamed to RBTreeBase and SplayTreeBase.
RBTree and SplayTree inherit from them and define new methods.