Add password authentication to Client

You can use Cmd to manually call the `AUTH` command, but this doesn't work with PubSub objects because as soon as the PubSub object is created it is impossible to execute commands on it. This PR is how I am working around this in my project, though I'm unsure It's the best solution. Maybe authing could be done as a seperate method on Connection/PubSub objects. This currently works by giving a password in the URI string:

```
Client::open("redis://:password@127.0.0.1").unwrap();
```

If the URI string is the way to go, while incorrect, maybe it would be nicer to just use the username as the password parsed from the URI, as the username is redundant with redis. On an unrelated note, the url crate is deprecated, so probably need a new dependency on [rust-url](https://github.com/servo/rust-url).