We've long discussed having a ghandle type corresponding to HANDLE on windows
and an int (fd) elsewhere. Let's add that now.
We continue to maintain the 'fd' field as being an integer on Windows in order
to avoid warnings about implicit casts in existing software. 'ghandleint' was
introduced for that purpose.