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.
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).