Fix malformed IP v6 parsing

Certain malformed IPv6 addresses were being parsed - namely those containing three or more colons, or two or more sets of two colons.  This commit ensures that these addresses do not parse and adds specs to ensure against regression.