Use `std::iswcntrl` instead of `std::iscntrl` on Windows
Use `std::iswcntrl` instead of `std::iscntrl` on Windows

As specified in http://en.cppreference.com/w/cpp/string/byte/iscntrl,
passing a character that cannot be represented as an `unsigned char` can
cause undefined behavior. The characters that are returned from
`ToUnicodeEx` are *wide characters* and, therefore, calling
`std::iscntrl` could be very risky when dealing with non-latin
languages.

On 32-bit builds of Atom, this was causing the Saudi Arabian keyboards
keymap to not list many key codes (e.g. `KeyA`, `KeyS`, etc.), thus
making the calling code throw an error and behave weirdly.

atom/keyboard-layout,atom/keyboard-layout,atom/keyboard-layout