move arguments into kwargs.  add ability to force family to be either ipv4 or ipv6, otherwise if a host is specified then we leave it up to the resolver.