fmt_ip6 formats an IPv6 number in ASCII representation from ip and
writes the result into dest. It returns the number of bytes
fmt_ip6 will apply "::" compression to the output.
If ip is an IPv4-mapped IPv6 address, fmt_ip6 will output the last
4 bytes as IPv4 number in dotted-decimal notation.
If dest equals FMT_LEN (i.e. is zero), fmt_ip6 returns the number
of bytes it would have written.
fmt_ip6 does not append \0.
For convenience, ip6.h defines the integer IP6_FMT to be big enough to
contain every possible fmt_ip6 output plus \0.