HTTPDigestAuth fails on non-latin credentials

Hello everyone.

I'm trying to login with digest auth with russian-characted login and it fails.
I was trying to find any information about solving this issue for a whole night but unsuccessfully. Please help

Unfortunately I can't view the whole file due to confidentiality.
If you need any information I didn't include in this issue please report.

> self.session below is instance of requests.Session()

```
>>> page = self.session.get(main_url, auth=requests.auth.HTTPDigestAuth("Сергей_Ласточкин", '1234'))
Traceback (most recent call last):
  File "<pyshell#378>", line 1, in <module>
    page = self.session.get(main_url, auth=requests.auth.HTTPDigestAuth("Сергей_Ласточкин", '1234'))
  File "C:\Python\Python36\lib\site-packages\requests\sessions.py", line 521, in get
    return self.request('GET', url, **kwargs)
  File "C:\Python\Python36\lib\site-packages\requests\sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Python\Python36\lib\site-packages\requests\sessions.py", line 625, in send
    r = dispatch_hook('response', hooks, r, **kwargs)
  File "C:\Python\Python36\lib\site-packages\requests\hooks.py", line 31, in dispatch_hook
    _hook_data = hook(hook_data, **kwargs)
  File "C:\Python\Python36\lib\site-packages\requests\auth.py", line 257, in handle_401
    _r = r.connection.send(prep, **kwargs)
  File "C:\Python\Python36\lib\site-packages\requests\adapters.py", line 440, in send
    timeout=timeout
  File "C:\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "C:\Python\Python36\lib\site-packages\urllib3\connectionpool.py", line 357, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "C:\Python\Python36\lib\http\client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "C:\Python\Python36\lib\http\client.py", line 1280, in _send_request
    self.putheader(hdr, value)
  File "C:\Python\Python36\lib\http\client.py", line 1212, in putheader
    values[i] = one_value.encode('latin-1')
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 17-22: ordinal not in range(256)
```

## System Information

    $ python -m requests.help

```
{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": "2.2.2"
  },
  "idna": {
    "version": "2.6"
  },
  "implementation": {
    "name": "CPython",
    "version": "3.6.5"
  },
  "platform": {
    "release": "10",
    "system": "Windows"
  },
  "pyOpenSSL": {
    "openssl_version": "1010008f",
    "version": "17.5.0"
  },
  "requests": {
    "version": "2.18.4"
  },
  "system_ssl": {
    "version": "100020bf"
  },
  "urllib3": {
    "version": "1.22"
  },
  "using_pyopenssl": true
}
```


https://github.com/psf/requests/blob/4f6c0187150af09d085c03096504934eb91c7a9e/requests/auth.py#L59-L63

Don't pass unicode strings in the arguments, but use UTF8 bytes instead.
```
self.session.get(main_url, auth=requests.auth.HTTPDigestAuth("Сергей_Ласточкин".encode('UTF-8'), '1234'))
```