Provide reverse iteration and arbitrary seeking.

The ``SkipList`` protocol has been updated to reflect two new
features:

``SkipList.SeekTo(key interface{}) (iterator, error)``

This enables seeking to arbitrary positions in the list, similar to
the behavior found in ``SkipList.Get`` in _O(log n)_ time.

``Iterator.Prev() bool``

Skip List ``node`` elements are now doubly-linked to enable
backtracking to previous elements.