(#1) Refactoring for PCP

* Use two-element array struct members for tracking the IPv4/IPv6 interfaces,
  addresses, etc. instead of differently named members.
* Track and store the interface addresses in IPv6 form. PCP always sends IPv6
  addresses, either native or IPv4-mapped format. NAT-PMP is the exception.
* Switch from SIOCGIFADDR ioctl to getifaddrs to get hold of IPv6 interface
  addresses