Don't poll the connection monitor if there are no connections added.

This caused the backends to return an error code, which
in turn ended the mainloop. However, several other things
also might occur in the main loop, such as DNS lookups which
come prior to creating any connections that in turn would be monitored.
Created a connection establishment API.

This API provides transparent asynchronous DNS lookups
with both IPv4 and IPv6 support, and in addition will try
to connect to all addresses until one of them work.

This implements the "happy eyeballs" algorithm provided that the client supports IPv6
and that the DNS records provides both IPv6 and IPv4 addresses.
Re-factored the ADC client code to use the new connection establishment API.
Make sure we compile release builds with NDEBUG defined (to disable asserts).