Test that :abcd is caught as an invalid IPv6 address

The slow IPv6 check does not catch this - RT #93622
Replace _slow_ipv6 with a regex

This regex comes from Regexp::IPv6, and passes all of our test cases
Tidy all code