Adds IPv6 support [RT#75618]

We found LWP (and Net::HTTP) underneath to not handle IPv6.  With monkeypatching, we could make LWP work, but not with IPv6 literals.  Net::HTTP repeatedly parsed the last group of digits in the IPv6 address as a port.

This patch does a few things:

1: Adds IPv6 support by opportunistic use of IO::Socket::IP or IO::Socket::INET6, if found.
2: Uses URI to parse addresses.  This is important so that an address like [2001:db8::1]:80 can be passed.
3: Updates the documentation

Passes existing unit tests.

This patch (or something like it) is a blocker for LWP to use IPv6 on http/https.
Note that this change alone won't make LWP do IPv6 - there will be a separate
(but minor) patch for LWP to pass IPv6 literals with [brackets].