`playhouse.db_uri.connect` doesn't support db passwords requiring escape
Merged an equivalent patch, with the difference being that it does not include logic to unquote the username -- just the password.
## the problem

To provide a password (or username) with characters unsafe for a URI, users must escape them to include them in the authority of a URI. However, the standard python password url parse logic -- `urllib.parse(uri).password` -- doesn't automatically unquote a password; clients of that code must . As it is, Peewee currently does not.

As a brief reproduction:
```bash
docker run \
    --name peewee-test \
    --rm \
    --detach \
    --publish=3306:3306 \
    --env "MYSQL_ROOT_PASSWORD=abcd#hijk" \ 
    --env "MYSQL_DATABASE=peewee-test" \
    mysql:5.7
```
and then:
```python
from playhouse.db_url import connect
from urllib.parse import quote

password = "abcd#hijk"

# ValueError within urllib.parse because parser reads '#' as start of fragment
connect(f"mysql://root:{password}@127.0.0.1:3306/peewee-test").connect()  

# access denied because not unquoted
connect(f"mysql://root:{quote(password)}@127.0.0.1:3306/peewee-test").connect()
```

Tested with peewee==3.7.0 FWIW.

## The proposal

Many libraries using URIs as connection string implicitly unquote the username and password. I suggest playhouse add the same ability while providing backward compatibility for those current users whose passwords  `unquote` might break (those who have the sequence which I imagine would be very very rare, but still).

```python
def connect(url, unquote_creds=False, **connect_params):
     pass
```