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
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
Merge branch 'master' into default_shared_port. #3813

Merge was done by hand and tested to the point where it compiles
and the logic looks right.  Needs testing.

Conflicts:
	src/condor_daemon_core.V6/condor_daemon_core.h
	src/condor_daemon_core.V6/daemon_command.cpp
	src/condor_daemon_core.V6/daemon_core.cpp
	src/condor_io/shared_port_client.cpp
	src/condor_io/shared_port_client.h
	src/condor_io/shared_port_server.cpp
	src/condor_utils/param_info.in
Cleanups from testing branch. #3813

- Actually turn on USE_SHARED_PORT by default as the branch suggests.
- Fix bug on IPv6 socket binding caused by default arguments to bind.
- Avoid binding the UDP socket twice.
Merge branch 'master' into default_shared_port