It may be serious on some edge cases, but I'm only aware of read/write cases on win32 now.

More explanation on tests:
`read_eof_twice_ip4` and `read_eof_twice_ip6` tests try to read socket which got EOF before. This occurs EOF (`read_cb` is called with empty data) on unix, but on Windows it does not call `read_cb` and just returns error.
This is due to libuv's win32 implementation. when libuv met EOF, it sets `handle->flags &= ~UV_HANDLE_READABLE;` which means the handle is not usable. When read is called again, libuv sees the flag and returns error. I'm not sure why they programmed it differently...

So, I think we have to check return value of `uvll::func()` for most cases for safety. Currently some routines have assertion (e.g. `assert_eq!(0, uvll::write(req.native_handle(), self.native_handle(), [buf], write_cb));`), but in some cases the assertion can be invalid in non-fatal case. This is why `write_close_ip4` test fails on win32.