Change stdio::m_fd to a void pointer to remove cstdio dependency in header
Use named parameters to all Win32 API calls

This avoids magic default arguments, making the implementation much
easier to understand.
win32.cpp: Fix throw_getlasterror