Add StreamingIterator wrapper

See https://github.com/kennethreitz/requests/issues/1648 for reasoning
Add one more line to test it returns empty bytestrings
Fix module docstrings for requests_toolbelt.multipart
Update StreamingIterator implementation

Buffer bytes and return the number of bytes requested
Fill out StreamingIterator's docstring
Amend wording of docstring
Add documentation for the StreamingIterator
Remove dead code path
Merge branch 'streaming-iterator' into 'master'

Streaming Iterator

See https://github.com/kennethreitz/requests/issues/1648 for some more detailed reasoning.

In short, if you have a iterator that you know the size of, and a server that doesn't like or accept chunked transfer-encoding, you want to use this class. It will wrap the iterator and provide a sufficiently file-like object for requests to use to stream the data.

For example,

```python
from requests_toolbelt.streaming_iterator import StreamingIterator

import requests

r = requests.post('https://httpbin.org/post', data=StreamingIterator(length, iterator))
```
Update HISTORY to reflect 0.3.0 release data

Trim whitespace
Merge branch 'master' of gitlab.com:sigmavirus24/toolbelt