unix, windows: return UV_EINVAL, not UV_EFAULT

A wrong multicast membership should return EINVAL.
build: don't export _POSIX_C_SOURCE on non-linux

Don't export _POSIX_C_SOURCE to dependents. On the BSDs (and the
BSD-ish, like OS X), it hides SysV and BSD definitions.

The exception is Linux: _POSIX_C_SOURCE=200112 unlocks some of the
newer pthreads features like spinlocks and barriers, so keep
exporting it on that platform.
test: remove .travis.yml

Travis CI was generating a lot of false positives (or rather, false
negatives - tests that fail due to the environment they run in) and
it's been in a continuous error state for days now.

Remove it, we'll set up something ourselves.
unix: support sending uv_udp_t handles over ipc pipes
unix: fix style issues in udp.c
build: add OS= make switch

Overrides the platform detection heuristic. Useful for cross-compiling.
build: support out of tree builds

Invoking make with builddir_name=/path/to/dir builds libuv in the
designated directory.
linux: move files out of src/unix/linux

Flattens the source tree and simplifies the Makefile.
build: fix up dependency rules

* Auto-create build subdirectories.

* Add coarse dependencies on header files so make rebuilds the sources
  whenever the headers change.
win: sort error code mappings
win: add error mappings related to unsupported protocols
win: fix uv_winsock_init crash when no IPv4 stack present

uv_winsock_init() tries to create an IPv4 socket in order to detect
if the system has any layered service providers (LSPs) installed.
When creating this socket failed it would call uv_fatal_error and exit
with the following message:

  socket: (10047) An address incompatible with the requested protocol was used.

This patch fixes that. It also includes some minor style tweaks.
win/tcp: make uv_tcp_set_socket set UV_HANDLE_IPV6

This makes uv_tcp_set_socket responsible for setting the UV_HANDLE_IPV6
flag. This fixes a couple of situations where the the fact that a socket
is an IPv6 socket is not taken into account when deciding whether a call
to SetFileCompletionNotificationModes is appropriate.

It also fixes the issue that uv_tcp_open would never set this flag at
all.
win/udp: make uv_udp_set_socket set UV_HANDLE_IPV6

This patch makes uv_udp_set_socket responsible for setting the
UV_HANDLE_IPV6 flag. It also fixes the problem that uv_udp_open would
never set this flag at all.

In addition, this patch fixes some minor style issues.
win/udp: fix bug in getsockopt() return value check
win/udp: DRY up setting SO_REUSEADDR

This patch makes sure that only uv_udp_set_socket sets the SO_REUSEADDR
bit for UDP sockets.
win: get rid of early ipv6 support detection

No longer explictly check wheter an IPv6 stack is present when the user
tries to use IPV6 sockets. Instead realy on the operating system
to report the lack of protocol support via appropriate error messages.
unix: don't clobber errno in signal handler
build: fix up WIN_SRCS
darwin: merge uv_cond_timedwait implementation

Merge the OS X specific implementation of uv_cond_timedwait() with the
generic one. The only difference is that it now uses mach_absolute_time
instead of gettimeofday.