add support for multiple pages of results for very large queries

First, thanks for re-releasing this gem under new management.  I love how easy this is to use now.  Automatically polling the batch status is just awesome.

for bulk_api queries with a very large number of results (maybe...more than 2 million?) , Salesforce may return an array of result_ids, instead of a single result_id.  This will handle both cases.  If there are multiple result_ids, we will iterate through them and query the results for each.  Then we'll concatenate them into a single flattened array of results.
Isn't the point of `Array` not having to check if the passed in type is an array:

    Array("abc")
    => ["abc"]

    Array(["a", "b", "c"])
    => ["a", "b", "c"]