code: public static String join(Iterator<Object> self, String separator) {
          return join((Iterable)toList(self), separator);
      }
docs: Concatenates the <code>toString()</code> representation of each
  item from the iterator, with the given String as a separator between
  each item. The iterator will become exhausted of elements after
  determining the resulting conjoined value.
  
  @param self      an Iterator of items
  @param separator a String separator
  @return the joined String
  @since 1.5.5