Solve the actual problem, Modern::Open

Modern::Open installs its own warnings.pm. This overrides normal warning
and breaks these 4 tests. Modern/Open.pm does not appear to be installed
by the offending package, so cannot check for that. However the version
of warnings.pm it installs has its own carp() method, so I check for
that in the warnings namespace.