code: public final void removeAll(IxPredicate<? super T> predicate) {
          Iterator<T> it = iterator();
          while (it.hasNext()) {
              T v = it.next();
              if (predicate.test(v)) {
                  it.remove();
              }
          }
      }
docs: Consumes this Iterable and removes all elements for
  which the predicate returns true; in other words,
  remove those elements of a mutable source that match
  the predicate.
  @param predicate the predicate called with the current
  element and should return true for elements to remove, false
  for elements to keep.
  @throws UnsupportedOperationException if the this Iterable
  doesn't allow removing elements.
  @see #retainAll(IxPredicate)
  @see #removeAll()
  @since 1.0