code: public static <T> Iterator<T> sort(Iterator<T> self) {
          return sort((Iterable<T>) toList(self)).listIterator();
      }
docs: Sorts the given iterator items into a sorted iterator. The items are
  assumed to be comparable. The original iterator will become
  exhausted of elements after completing this method call.
  A new iterator is produced that traverses the items in sorted order.
  
  @param self the Iterator to be sorted
  @return the sorted items as an Iterator
  @since 1.5.5