public static <K, V> MapStream<V, K> flip(MapStream<K, V> original) {
        return MapStream.fromStream(
            requireNonNull(original),
            Map.Entry::getValue, 
            Map.Entry::getKey
        );
    }
Produces a new MapStream by flipping the specified one so that keys 
become values and values become keys. This will consume the supplied
stream.

@param <K>       original key type
@param <V>       original value type
@param original  original MapStream
@return          new MapStream with keys and values flipped
@throws NullPointerException if any of the provided parameters are {@code null}
common-parent/mapstream/src/main/java/com/speedment/common/mapstream/MapStream.java