public static <K, V> MapStream<K, V> of(Stream<Map.Entry<K, V>> stream) {
        return new MapStream<>(requireNonNull(stream));
    }
Constructs a new {@code MapStream} by wrapping a key-value pair stream. 
The provided stream will be wrapped in this stream. After this method is
called, no more changes should be done to the stream!

@param <K>     key type
@param <V>     value type
@param stream  stream to wrap
@return        created {@code MapStream}
@throws NullPointerException if any of the provided parameters are {@code null}
common-parent/mapstream/src/main/java/com/speedment/common/mapstream/MapStream.java