Socket functionality for WindowsPoller

Current state of the Windows port: all tests in common/ pass
Is it worth defining PREENUMPACK and POSTENUMPACK macros (or similar), so we can avoid duplicating this logic/code throughout the codebase.