Make single argument constructors explicit in macros.
    Remove NOMINMAX macro.
    Add macros for disabling Microsoft Visual C++ warnings.
    Add WhenDynamicCastTo<T> matcher.
    A matcher that matches a pointer that matches inner_matcher when
    dynamic_cast<T> is applied.
    Add IWYU export pragmas to the tuple include lines.
    Fix NativeArray to not require a copy constructor unless we ask for one.
    This allows ElementsAre() to support non-copyable types.
    Examine WINAPI_FAMILY_PARTITION macros to better distinguish windows platforms.
    Author: martin@martin.st
    From: https://codereview.appspot.com/57220043/