Use URI to build URIs and hostname= to wrap ipv6 addresses in brackets.

See: https://bugs.ruby-lang.org/issues/3788
Related: https://www.ietf.org/rfc/rfc2732.txt
@jrafanie Is there any disadvantage to that?  I guess worst case, it could be opened as allowing a ```:hostname``` key so that they match the attribute methods, right?