tree: add vanEmdeBoars tree

vanEmdeBoars tree - data structrue that contains integer keys from
range [0, U] and supports following operations:
min(),max() - minimum and maximum keys in O(1) time
add(x), remove(x) - add/remove key in O(log log U) time
successor(x) - min(y | y > x, y in the tree) in in O(log log U) time
predecessor(x) - max(y | y < x, y in the tree) in in O(log log U) time

Currently keys are unique, adding an existing key raises KeyError
exception