fix "Revert "add a warning for using the :win32 PerlIO layer"

commit 6e9f2f2d7d in caller.t lowered the number of warnings bytes from
16 to 15, but didn't lower it anywhere else, such as in warnings.pm,
probably due to the 2 new warnings (missing, redundant) added after win32 io
layer warning was added, so bump the 15 to 16 to make caller.t pass
fix crash in PerlIOWin32_open

checking if(f) isn't enough, *f also must be checked or it will crash,
use the correct PerlIOValid macro instead of just checking f