Try all IP addrs associated with a hostname if the first fails
Make SoupAddress keep track of multiple IP addresses and implement
GSocketConnectable, and make SoupSocket use GSocketClient (and thus
GSocketAddressEnumerator) to connect, so that it tries all addresses
associated with the SoupAddress.
In particular, this fixes the bug where if a host has both IPv4 and
IPv6 addresses, and glibc thinks you have IPv6 connectivity, but you
don't really, that libsoup can't connect to that host.
(Using GSocketClient rather than using GSocketAddressEnumerator
directly is a bit heavyweight for SoupSocket, since we don't actually
want to have a GSocket or GSocketConnection. But eventually, we will
be porting SoupSocket to use GSocket, and this code is a stepping
stone to that. Also, letting GSocketClient do the looping over the
addresses simplifies SoupSocket.)
(This change also silently breaks connection timeouts unless you have
the very latest git glib.)
https://bugzilla.gnome.org/show_bug.cgi?id=526321