Make ResponseReader more streamlike, so that it can be wrapped in a BufferedReader

As per discussion in http://answers.splunk.com/answers/114045/python-sdk-resultsresultsreader-extremely-slow, I've attempted to make the `ResponseReader` more streamlike - this allows us to wrap it in an `io.BufferedReader` to realize a significant performance gain.

### Example usage
code before:
```python
response = job.results(count=maxRecords, offset=self._offset)
resultsList = results.ResultsReader(response) 
```

Code after:
```python
import io
...
response = job.results(count=maxRecords, offset=self._offset)
resultsList = results.ResultsReader(io.BufferedReader(response)) 
```

Both snippets should function the same, but the second example should be much faster. The first snippet continues to work as previously.

_side note: my git config (I think) has squashed extraneous whitespace - sorry_