Rearrange struct layouts to make FFI bindings easier

This patch ensures that all struct fields are in this order:
  1. public
  2. readonly
  3. private
Add mailing list to readme
windows: build system improvements

* Add shared/static library option
* Add x86/x64 target option
* Improve Visual Studio detection
* Set GYP_MSVS_VERSION to pick VS2010 over VS2008

Closes GH-504
Closes GH-514
unix: map EDQUOT to UV_ENOSPC
windows: don't blow up when an invalid FD is used
windows: fix vcbuild.bat issue

gyp_uv was complaining because it never receives a value for which type
of library to build (static vs shared). This makes vcbuild.bat set the
default to build a static library.
include: remove uv_counters_t, missed in 837edf4
unix: close async pipe fds on loop delete
unix: move getaddrinfo code to getaddrinfo.c
doc: add lxjs talk to readme
test: add uv_fs_readlink test
test: fix error message in runner
test: add valgrind support

Run tests through valgrind when UV_USE_VALGRIND=1 is set in the environment.
test: delete default loop after test run

Delete the default event loop after the test completes. Keeps valgrind happy.
test: fix memory leak in tcp_ping_pong
linux: please valgrind, free memory at exit

Free the memory that is used to store the new argv and envp. It's not strictly
necessary (the OS is going to reclaim the memory anyway) but it makes the output
from valgrind a lot less noisy.
include: make ngx_queue macros sanitary
unix: add custom thread pool
unix: port getaddrinfo to new thread pool
unix: port fs and work api to new thread pool