public static <T> BinaryOperator<T> throwingMerger() {
        return (u, v) -> {
            throw new IllegalStateException(String.format("Duplicate key %s", u));
        };
    }
Returns a merge function, suitable for use in
{@link Map#merge(Object, Object, BiFunction) Map.merge()} or
{@link Collectors#toMap(Function, Function, BinaryOperator) toMap()}, 
which always throws {@code IllegalStateException}. This can be used to 
enforce the assumption that the elements being collected are distinct.

@param <T>  the type of input arguments to the merge function
@return     a merge function which always throw 
            {@code IllegalStateException}
common-parent/mapstream/src/main/java/com/speedment/common/mapstream/MapStream.java