openbsd, osx: fix compilation warning on scandir

The select function takes a const struct on newer OSX versions but it
doesn't on OSX <= 10.7 or OpenBSD.
linux: always deregister closing fds from epoll

If the same file description is open in two different processes, then
closing the file descriptor is not sufficient to deregister it from the
epoll instance (as described in epoll(7)), resulting in spurious events
that cause the event loop to spin repeatedly. So always explicitly
deregister it.

Fixes #1099.

Conflicts:
	test/test-spawn.c
unix: reopen tty as /dev/tty

Reopen the file descriptor when it refers to a tty. This lets us put the
tty in non-blocking mode without affecting other processes that share it
with us.

This brings back commit 31f9fbc, which was reverted in 20bb1bf. The OSX
select trick is working now.

Original patch by @bnoordhuis
kqueue: invalidate fd in uv_fs_event_t

Invalidate file descriptor when closing `uv_fs_event_t` handle. Note
that `uv__io_stop` is just removing `fd` from `loop->watchers` and not
actually invalidating all consequent events in a `kevent()` results.

fix joyent/node#1101
Merge branch 'v0.10'

Conflicts:
	test/test-spawn.c
2014.03.11, Version 0.11.22 (Unstable)

Changes since version 0.11.21:

* unix, windows: map ERANGE errno (Saúl Ibarra Corretgé)

* unix, windows: make uv_cwd be consistent with uv_exepath (Saúl Ibarra
  Corretgé)

* process: remove debug perror() prints (Fedor Indutny)

* windows: fall back for volume info query (Isaiah Norton)

* pipe: allow queueing pending handles (Fedor Indutny)

* windows: fix winsock status codes for address errors (Raul Martins)

* windows: Remove unused variable from uv__pipe_insert_pending_socket
  (David Capello)

* unix: workaround broken pthread_sigmask on Android (Paul Tan)

* error: add ENXIO for O_NONBLOCK FIFO open() (Fedor Indutny)

* freebsd: use accept4, introduced in version 10 (Saúl Ibarra Corretgé)

* windows: fix warnings of MinGW -Wall -O3 (StarWing)

* openbsd, osx: fix compilation warning on scandir (Saúl Ibarra
  Corretgé)

* linux: always deregister closing fds from epoll (Geoffry Song)

* unix: reopen tty as /dev/tty (Saúl Ibarra Corretgé)

* kqueue: invalidate fd in uv_fs_event_t (Fedor Indutny)
Now working on v0.11.23
unix: fix setting written size on uv_wd
stream: do not leak `alloc_cb` buffers on error

Always pass previously allocated (if any) buffer, when calling
`read_cb()` on error.
win: fix buffer leak on error in pipe.c
Merge remote-tracking branch 'origin/v0.10'

Conflicts:
	src/win/pipe.c
build: freebsd link with libelf if dtrace enabled
build: fix SunOS and AIX build with autotools
build: removed unused and old option on AIX
android: add support of ifaddrs in android

Fixes https://github.com/joyent/node/issues/7291
unix, windows: removed unused status parameter

async, timer, prepare, idle and check handles don't need the status
parameter.
unix, windows: add IPv6 support to uv_udp_set_membership

Reworked from initial version by @snoj
osx: fix compilation warning

Remove leftover status argument uv_async_t callbacks
unix: fix handling uv__open_cloexec failure
test: fix multicast join test on OSX when using IPv6

When choosing an IPv6 interface all low level APIs use the interface
index which can be gathered with if_nametoindex. Passing a 0 means to
use the default as per the documentation. On OSX, however, this is not
the case and when 0 is specified it gives EADDRNOTAVAIL error. So, we
workaround the test, by using the 'lo0' interface on OSX, which has an
index of 1.