add socket-based IP detector, add test, update docs

the detect_ip lib implements a nice method to find out the IP address that the system uses to talk to the outside world, based on sockets.
for IPv6 this makes much sense for us, especially because we can find out the PUBLIC STATIC IP v6 address (not the privacy enhanced temporary one).
for IPv4 it makes much less sense, as there usually is NAT, so we rather want to find out the router's outside IP, thus webcheck4 is better for that.

Note: If one uses the socket method to determine the public static IPv6 of one system inside a LAN, nsupdate.info can use the prefix of that to compute all other LAN IPv6 addresses from a table that maps interface IDs -> names.