windows: Provide a poll(2) wrapper calling WSAPoll()
libradius: Use poll(2) to wait for RADIUS responses
tun-device: Remove the superfluous use of select() before read()
tun-device: Read from tun to buffer on stack to avoid over-allocation of packets

Instead of allocating MTU-sized buffers for each packet, read to a stack buffer
and copy to an allocation of the actual packet size. While it requires an
additional copy on non-Apple platforms, this should make allocation more
efficient for small packets.
socket-default: Use poll(2) instead of select

It is not only simpler, but also allows the use of arbitrary high fd numbers,
which silently fails with select().
socket-default: Use round-robin selection of sockets to read from

If multiple sockets are ready, we previously preferred the IPv4 non-NAT socket
over others. To handle all with equal priority, use a round-robin selection.
libtls: Use poll(2) instead of select() in tls_socket
watcher: Use poll(2) instead of select
kernel-libipsec: Use poll(2) instead of select
thread: Test for pending cancellation requests before poll()ing on OS X

As we are now using poll(2) instead of select(2), we need the work-around from
76dc329e for poll() as well.
unit-tests: Test cancellability of some cancellation points we rely on
windows: Provide a read(2) wrapper that uses recv(2) on sockets
windows: Provide a write(2) wrapper that uses send(2) on sockets
watcher: Use Windows read/write(2) wrappers instead of compile-conditions
apple: Introduce a central compatibility header with all __APPLE__ quirks
apple: Wrap accept() and recvfrom() with poll(2) instead of select
windows: Move the compatibility header to the compat subfolder
Merge branch 'poll'

Replace relevant uses of select() by poll(). poll(2) avoids the difficulties
we have with more than 1024 open file descriptors, and seems to be fairly
portable.

Fixes #757.
child-sa: Introduce a CHILD_RETRYING state to detect DH group retries
controller: Keep following initiate() if the first DH guess was wrong