winio: fix detection of tty terminals
Fix TTY detection code.
Currently it's having issues miss-detecting the NUL device.
The current code assumes anything of type FILE_TYPE_CHAR is a TTY,
however the NUL device has type FILE_TYPE_CHAR but can't be used
with the native console APIs.
Instead default to anything not of type FILE_TYPE_CHAR is not a TTY
and perform an additional check to see if things of type FILE_TYPE_CHAR
have a console mode.
Fixes #18492 (closed)