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