Fix for socket NONBLOCK not cleared

I found that if a socket was re-used, sometimes it would incorrectly have the wrong blocking status, because the socket creation code in socket() didn't clear the value