MB-16961 skiplist: Fix iterator.Next() causing missing items
MB-16961 skiplist: Fix iterator.Next() causing missing items

When concurrent deletes happen during skiplist iteration, iterator
will observe deleted nodes. When deleted nodes are found, it has to
participate in node cleanup and move to the next node. But, we had
a logic to determine next node by doing the node cleanup of current node
and setting the new curr = prev.next. But, it was also not checking
if the prev node is already deleted. By the time prev.next was called,
more items could be inserted in between prev and next node as well.
Cleaned up iterator.Next() to do only necessary things.

t3rm1n4l/nitro,t3rm1n4l/nitro,t3rm1n4l/nitro