IPV6: Add basic IPv6 support

This adds basic IPv6 support to libnfs.
Since libnfs currently only support PORTMAPPER protocol up to version 2
the IPv6 support only works if the server runs Both MOUNT and NFS protocols
on the same ports for IPv6 as for IPv4.

To get full IPv6 support we need to add support for PORTMAPPER version 3
and use it for discovery when using IPv6
PORTMAP: Rename the functions in PMAP to PMAP2 to desribe the version of PMAP we use.

Future patches will add PMAP3 which we will need for IPv6 support.
RPC_CONNECT:  Use the rpc_connect_program_async() flow during nfs_mount()
GETEXPORT: Use rpc_connect_program_async() flow during list exports

and get rid of several now redundant callbacks.
PORTMAPv3: Add NULL and DUMP commands. Also add portmap example client.
PORTMAP: Add support for PORTMAP v3 GETADDR
PORTMAP: Add support for SET UNSET procedures
IPv6: If we use IPv6 then we need to use PMAP v3 GETADDR
PORTMAP: Add v3 GETTIME support
PORTMAP: Add support for PORTMAP v3 CALLIT
PORTMAP: Add PMAP v3 UADDR2TADDR support
PORTMAP: Add support for v3 TADDR2UADDR
PORTMAP: Rename pmap3_getaddr_result to pmap3_string_result
PORTMAP client: Add commands to send v3 SET/UNSET
IPV6: Update the README and specify ipv6 is supported
PORTMAP client: Parse and print the actual sockaddr that UADDR2TADDR returned
PORTMAP client: Pass length as sockaddr_storage, not sockaddr_in6