io: make accept() close fd after watch is stopped
io: try syscalls again on EINTR
io: ignore protocol errors on accept
io: add stream:getpeer()
io: set FD_CLOEXEC on all new filedescriptors
http.server: add close() method
io: don't try to emulate TCP_CORK with TCP_NOPUSH

OSX and some versions FreeBSD doesn't send data
immediately after unsetting TCP_NOPUSH.
On OSX if you set TCP_NOPUSH, write data and then
unset TCP_NOPUSH you'll get a 2 second delay before
the last data is sent. Unfortunately I've found no
reliable work-around.