Cut down on automatic header inclusion on Windows

This will prevent windows.h from dragging in lots of other header files
by default. It helps us avoid problems such as having to include
winsock2.h before windows.h which would otherwise lead to problems with
redefined symbols.