src: ReqWrap now optionally accepts a wrap object
udp_wrap, tcp_wrap: add out arg to AddressToJS

Prep work for removing process._errno. The handle.getsockname() function
will return a status code in the future and set the address and port
properties on the object that's passed in from JS land.
deps: upgrade libuv to 3ee4d3f
src: add libuv bindings module

Exports:

* all UV_E* error codes
* a uv_err_name() binding
src, lib: deduplicate errnoException
src, lib: update after internal api change

Libuv now returns errors directly.  Make everything in src/ and lib/
follow suit.

The changes to lib/ are not strictly necessary but they remove the need
for the abominations that are process._errno and node::SetErrno().
test: fix up tests after internal api change
bench: fix up benchmarks after internal api change
src: fix windows build error from 221c689e

Just forward declare struct sockaddr, the struct is never actually
dereferenced in src/node_internals.h.

Before this commit, it included sys/socket.h but that header doesn't
exist on Windows.