Decode before authentication to allow (encoded) special characters

I had a problem with the get_url module and a url containing a password with a ```[```. The url was not parsed correctly since it was thought to be an IPv6 url. 

I think the right way to solve this is to url-encode such a password manually when using the get_url module, and decode it in the library before passing it to the internal password manager to authenticate.