MSVC/win32: IPPROTO_IPV6 only defined when _WIN32_WINNT >= 0x0501
When we're providing IPv6 support, we need to setsockopt(IPPROTO_IPV6, IPPROTO_IPV6ONLY) on our listeners so that they bind the address we want them to bind.
But with the MS-provided ws2def.h I've got, IPPROTO_IPV6 is only declared when _WIN32_WINNT >= 0x0501 (that is, when we say we want to build for XP or higher).
The easiest fix here would be to just drop support for pre-XP windowses and set _WIN32_WINNT to 0x0501. The next-easiest fix would be to hard-define IPPROTO_IPV6 to 41 when building for windows.
Marking this as "major" because it blocks building with MSVC.