getnameinfo(3) currently returns EAI_FAIL when salen is not equal to
the length corresponding to the value specified by sa->sa_family.
However, POSIX does not require it and RFC 4038 Sec.6.2.3 shows
an example passing sizeof(struct sockaddr_storage) to salen.
This patch makes the requirement less strict by accepting
salen up to sizeof(struct sockaddr_storage). It also includes
two more changes: one is to fix return values because SUSv4 requires
EAI_FAMILY when the address length is invalid, another is to fix
sa_len dependency in PF_LOCAL.