code: public <R> StreamEx<R> flatMapKeyValue(BiFunction<? super K, ? super V, ? extends Stream<? extends R>> mapper) {
          return this.<R> flatMap(toFunction(mapper));
      }
docs: Returns a stream consisting of the results of replacing each element of
  this stream with the contents of a mapped stream produced by applying the
  provided mapping function to each key-value pair. Each mapped stream is
  closed after its contents have been placed into this stream. (If a mapped
  stream is {@code null} an empty stream is used, instead.)
  
  <p>
  This is an <a href="package-summary.html#StreamOps">intermediate</a>
  operation.
  
  @param <R> The element type of the new stream
  @param mapper a non-interfering, stateless function to apply to each
  key-value pair which produces a stream of new values
  @return the new stream
  @since 0.3.0