Add windows error names.

Winsock doesn't have as nice a function as strerror, and doesn't use the
same errno mechanism as standard Berkeley sockets. Luckily, we only ever
use strerror on sockets-based functions, so that we can wrap it in an
os-specific manner that delegates to WSAGetLastError on windows.