Move SIOCAIFADDR_IN6 (current "primary" ioctl to add an IPv6 interface address) handling code to the dedicated `in6_addifaddr()` function and make it a part of KPI. This allows in-kernel users to add/delete interfaces addresses without relying on ioctl interface.
Note: the code in the function is a full copy-paste, the only difference is "compat" handling for CARP - instead of comparing the CMDs, the ioctl handler now zeroes vhid value so the carp check always fails for compat cmd.except 2 places:
* the first difference is "compat" handling for CARP - instead of comparing the CMDs, the ioctl handler now zeroes vhid value so the carp check always fails for compat cmd.
* the second is the return in the furst `in6ifa_ifpwithaddr()` check - as `ia` is NULL, it is possible to simply return with success.
The function by itself consumes passed `ia`.