stream: add an API to make streams do blocking writes

This patch adds the `uv_stream_set_blocking` API which makes all
uv_write calls to that stream blocking. It currently only works for
pipes, on windows.
unix, windows: improve getaddrinfo error reporting

* Map EAI_* constants to UV_EAI_* constants for portability reasons.

* Have uv_getaddrinfo() hand the callback a UV_EAI_* error code.

* Add uv_getaddrinfo_strerror() that returns a string representation
  of the UV_EAI_* error code.

uv_getaddrinfo() can now report the full gamut of EAI_* errors. It no
longer touches loop->last_err.

Caveats: you should not use uv_last_error() anymore in your getaddrinfo
callback. Don't pass the error code to uv_err_name() or uv_strerror(),
you'll get bogus results (or hit an assertion.)
unix: remove loop->last_err wip
windows: remove last-err wip