code: public static <E> Iterator<E> take(long howMany, Iterator<E> iterator) {
          return new TakeUpToIterator<E>(iterator, howMany);
      }
docs: Creates an iterator yielding at most first n elements of the passed
  iterator. E.g:
  <code>take(2, [1, 2, 3]) -> [1, 2]</code>
  <code>take(4, [1, 2, 3]) -> [1, 2, 3]</code>
  
  @param <E> the iterator element type
  @param howMany elements to be consumed (at most)
  @param iterator the source iterator
  @return the resulting iterator