address: add api to set address from a sockaddr struct directly

This allows setting an ipv6 address with a scope id
peer: use exact endpoint address

The previous code was dropping the ipv6 scope
endpoint: use AF_INET6 socket family by default