Implementing a nicely-behaving C++ skiplist