Normalizes a formatted IPv6 address to a string with eight
hexadecimal numbers separated by ":". addr is given on
the same form, or any of the shorthand varieties as specified in
RFC 2373, section 2.2.
All hexadecimal letters in the returned address are lower-case,
and there are no superfluous leading zeroes in the fields.
Zero is returned if addr is incorrectly formatted.