Add conditional compilation for windows and posix functions.

This adds a Windows-specific versions of several symbols from libcrypto
and openssl(1).
update and mask unit tests when running on win32

Update pq_test to ignore changes in whitespace.
Fork-based tests do not make sense on Windows.
Disable building biotest, since it is too specific to OpenBSD's behavior
to be useful on other platforms.
add minimal poll(2) implementation

this is enough for the purposes of openssl(1)

from songdongsheng@live.cn
add minimal winsock->BSD networking header shims

also add license header to existing shims
monkey patch more POSIX-like behavior out of winsock 2

Windows sockets functions look on the outside like they behave similarly
to POSIX functions, but there are many subtle and glaring differences,
including errors reported via WSAGetLastError, read, write, and close do
not work on sockets, setsockopt takes a (char *) rather than (void *),
etc.

This header implements wrappers that coerce more POSIX-like behavior
from these functions, making portable code easier to develop.

BENEFITS:
One does not necessarily need to sprinkle #ifdefs around code to handle
the Windows and non-Windows behavior when porting code.

CAVEATS:
There may be performance implications with the 'mother-may-I'
approach to determining if a descriptor is a socket or a file.

The errno mappings are not 100% what one might expect compared to POSIX
since there were not always good 1:1 equivalents from the WSA errors.
poll(2) emulation updates

 * use nfds_t directly for iterating the fds.
 * ensure this poll emulation is only build on Windows hosts.
 * add WSAGetLastError -> errno mappings
 * handle POLLHUP and the OOB data cases for revents
    (this is currently unused in openssl(1))
 * handle sparse arrays of fds correctly
 * KNF style updates