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.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information