First attempt at an implementation of a non-blocking shared port client.
Fix handling of NULL char *; fix non-blocking logic. #4094
Mark socket as non-blocking when a connection attempt is made. #4094

This causes clients to be rejected as soon as the daemon's backlog
is hit.  This is equivalent behavior to the case where the daemon
is listening on the network and the TCP socket backlogs.
ifdef out portions which will not compile under Windows. #4094
Merge branch 'master' into shared_port_nonblocking
Merge branch 'master' into shared_port_nonblocking
Merge branch 'master' into shared_port_nonblocking
Merge remote-tracking branch 'github/shared_port_nonblocking' into shared_port_nonblocking
Attempt to make the shared port transparently forward collector connections.
Allow shared port to peacefully coexist with the collector. #0
Have COLLECTOR_USES_SHARED_PORT do the requisite configuration. #3813
Merge branch 'V8_2-branch' into fast_negotiation
When available, use epoll for idle CCB sockets.

CCB may manage a huge number of sockets - many more than
what is considered possible to maintain inside DaemonCore (as
DC is currently based on select() and may have other overhead).

The current approach is to periodically poll each socket, one
at a time.  This approach remains on platforms without epoll,
but may occur up to a 20 second wait for a response on busy
CCB instances.

Now, epoll is used on supported platforms; this allows CCB to
be more responsive when targets send responses.  The epoll FD
is managed by DC; when it fires, we call epoll directly to drain
as many sockets as possible.
Close epoll FD on cleanup.
Improve the logic of readReady.
Improve performance of single-fd use of the Selector class.
Bugfixes for use of epoll / poll on Linux. #0
Still call PollSockets so we sweep reconnect info when in epoll mode. #4453
If oom_control can't be written, still try to catch OOM events. #4435

This is a short term workaround until we understand what the
kernel is really doing.
Document #4435