Adjust ip_is_ipv6 so that it rejects truncated addresses.
Handle '::' when it is used to shorten a single 16-bit field. (Such an address is technically invalid (RFC 5952 [4.2.2]), but this change is in keeping with this module's generally lax approach to parsing.)