Show IPv6 in appropriate notation proposed by RFC 5952.

Show an IPv6 address in the most appropriate notation, based on the recommended representation proposed in section 4 and section 5 in [RFC 5952](http://tools.ietf.org/html/rfc5952).

The implementation is pure and completely compatible with the current implementation of the `inet_ntop` function in glibc.
@kazu-yamamoto Do these tests look good to you? Do you want me to add more or split the commit?