Streaming query results

UPDATED:  
query_batch_result_data now returns a StringIO of the response body, so that the results can be enumerated.  

This greatly improves speed and memory use, since we don't have to pass the entire payload to a a CSV.parse, and then to_hash and store it in memory.  This also changes the structure of calling query to better fit the paradigm:
```ruby
> bulk = Executrix::Api.new(...)
> batch = bulk.query("Account", "select Id from Account") #=> blocks until batch/job completes.
=>#<Executrix::Batch:0x00....
> batch.results do |page|
   puts 'getting a page of results'
   page.each_slice(500_000) do |slice|
     puts slice.count
   end
 end
end
new page
500000
500000
34000
new page
500000
37
=> # <Enumerator: ...>
```

My original plan (and future goal) was to stream the response over http, rather than waiting for the whole payload.  But, I realized the biggest bottleneck is transforming the whole payload at once.