unix: honor UV_THREADPOOL_SIZE environment var

Make the size of the thread pool configurable through an environment
variable. For sanity reasons, the size is clamped to the range 1-128.
unix: fix strict aliasing warnings, macro-ify functions

Replace a few internal functions in uv-common.h with macros to avoid
strict aliasing warnings with older versions of gcc.

It's not smart enough to figure out that e.g. a uv_tcp_t is an instance
of uv_handle_t with similar alignment requirements and therefore no
aliasing happens. More recent versions of gcc don't suffer from this.

I'm not normally in the habit of catering to compiler defects but the
aliasing warnings drown out legitimate warnings, hence the change.
unix: add STATIC_ASSERT macro
unix: add uv_buf_t static asserts to core.c

Verify that our uv_buf_t type is ABI-compatible with struct iovec.
unix: fix strict aliasing warning in udp.c
unix: replace volatile cast with ACCESS_ONCE macro