windows: remove duplicated field

Fixes build
unix: simplify how process handle queue is managed
unix: stop child process watcher after last one exits
test: use less requests on tcp-write-queue-order

Makes the test reliably pass on Windows, otherwise the runtime aborts.
windows: simplify code in uv_timer_again

Remove duplicated code by directly calling uv_timer_stop
unix, windows: don't allow a NULL callback on timers
darwin: allocate enough space for select() hack

`fd_set`s are way too small for `select()` hack when stream's fd is
bigger than 1023. Make `fd_set`s a part of `uv__stream_select_t`
structure.

fix #1461
gyp: remove UNLIMITED_SELECT from dependent define

It isn't really needed here.
windows: further simplify the code for timers

- Remove the UV_HANDLE_ACTIVE flag. It's a duplicate from
  UV__HANDLE_ACTIVE, which was used solely on timers and loop watchers.

- Avoid duplicated code when running timers by stopping the handle and
  rearming it with the repeat time, thus having a single place where the
  timers are added and removed to and from the RB tree, respectively.
test: don't close connection on write error

The echo server shouldn't close the connection when there's an error on
write. Instead simply echo the error message and allow the other side to
close the connection.

Also do a partial revert of 4d905fb where after_shutdown was removed.

Fixes: 4d905fb "test: close stream immediately on error"
Signed-off-by: Trevor Norris <trev.norris@gmail.com>
Signed-off-by: Saúl Ibarra Corretgé <saghul@gmail.com>
doc: add API documentation
doc: mention API documentation in README
include: cleanup uv.h

Remove comments describing the API which are now part of the
documentation, thus avoiding future comment rot (and removing the
existing part).
version: add ability to specify a version suffix
windows: properly close the default loop

Also close the IOCP handle for any loop.

Closes #393
test: add test for closing and recreating default loop
linux: try epoll_pwait if epoll_wait is missing

It seems that epoll_wait is implemented in glibc in terms of epoll_pwait and
new architectures (like arm64) do not implement the epoll_wait syscall at all.
So if epoll_wait errors with ENOSYS, just call epoll_pwait.
unix: fix warnings when loading functions with dlsym
unix: fix warnings about dollar symbol usage in identifiers
ignore: ignore Xcode project and workspace files