Socket any loopback

Making Socket::address more useful with new methods to test and set ANY and LOOPBACK addresses with address family abstraction.

The new methods, for instance, allow to do:
```c++
Socket::address ip("0.0.0.0"); // could be an IPv6

// Win32 will crash if you try to connect to INADDR_ANY.
if (ip.isAny())
    ip.setLoopback(); // Will keep the address family
```

Also adding unit tests for these new features and for getPort, setPort.