Chunk-encoded request doesn't recognize iter_content generator

Passing a generator created by iter_content() as request data raises "TypeError: sendall() argument 1 must be string or buffer, not generator".

## Expected Result

The POST request successfully delives the content from the GET request.

## Actual Result

A TypeError is raised:
```
Traceback (most recent call last):
  File "..\test.py", line 7, in <module>
    PostForward("http://myhost/img/foo.png", "http://myotherhost/convert")
  File "..\test.py", line 6, in PostForward
    return requests.post(url=dst, data=data, headers={'Content-Length': length})
  File "C:\Python27\lib\site-packages\requests\api.py", line 112, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "C:\Python27\lib\site-packages\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 508, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 618, in send
    r = adapter.send(request, **kwargs)
  File "C:\Python27\lib\site-packages\requests\adapters.py", line 440, in send
    timeout=timeout
  File "C:\Python27\lib\site-packages\urllib3\connectionpool.py", line 601, in urlopen
    chunked=chunked)
  File "C:\Python27\lib\site-packages\urllib3\connectionpool.py", line 357, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "C:\Python27\lib\httplib.py", line 1042, in request
    self._send_request(method, url, body, headers)
  File "C:\Python27\lib\httplib.py", line 1082, in _send_request
    self.endheaders(body)
  File "C:\Python27\lib\httplib.py", line 1038, in endheaders
    self._send_output(message_body)
  File "C:\Python27\lib\httplib.py", line 886, in _send_output
    self.send(message_body)
  File "C:\Python27\lib\httplib.py", line 858, in send
    self.sock.sendall(data)
  File "C:\Python27\lib\socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
TypeError: sendall() argument 1 must be string or buffer, not generator
```

## Reproduction Steps

```python
import requests
def PostForward(src, dst):
	with requests.get(url=src, stream=True) as srcResponse:
		length = srcResponse.headers['Content-Length']
		data = srcResponse.iter_content(1024)
		return requests.post(url=dst, data=data, headers={'Content-Length': length})
PostForward("http://myhost/img/foo.png", "http://myotherhost/convert")
```

## System Information

    $ python -m requests.help

```
{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": ""
  },
  "idna": {
    "version": "2.6"
  },
  "implementation": {
    "name": "CPython",
    "version": "2.7.14"
  },
  "platform": {
    "release": "10",
    "system": "Windows"
  },
  "pyOpenSSL": {
    "openssl_version": "",
    "version": null
  },
  "requests": {
    "version": "2.18.4"
  },
  "system_ssl": {
    "version": "100020bf"
  },
  "urllib3": {
    "version": "1.22"
  },
  "using_pyopenssl": false
}
```

P.S.: The error is not raised if the headers param is omitted from the POST request. In that case the request is sent and the server receiving the request responds with 411 Length Required. The server is running Flask  0.12 on mod_wsgi 4.3.0 on Apache 2.4.18.

`iter_content` returns a generator, which means that we expect to use chunked `Transfer-Encoding`. You cannot specify that in addition to a Content-Length. The correct way to deal with this is to use [the StreamingIterator](https://toolbelt.readthedocs.io/en/latest/uploading-data.html#streaming-data-from-a-generator) from the [toolbelt](/requests/toolbelt).