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 cannot have commands other than subscribe/psubscribe called o what I am currently using in my project. Maybe authing could be done as a seperate method on Connection/PubSub objects, I'm unsure. Currently works by giving a blank user and 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).