Query and return the result in batches

This implements the ability to chunk the results into batches.

View this diff while #2 is pending: https://github.com/rcarver/orel/compare/rc-rspec3...rc-batch-query?w=1

---

Call `query_batches` to enable batch results. The result is an `Enumerator` instead of an `Array`. 

```
users = User.query do |q, u|
  q.query_batches :size => 1000
  q.where u[:first_name].eq("Joe")
end
users.each do |user|
   # do stuff with user
end
```

Pass `:group => true` to yield each batch as an array, instead of enumerating each object.

```
# with grouping
users = User.query do |q, u|
  q.query_batches :size => 1000, :group => true
  q.where u[:first_name].eq("Joe")
end
users.each do |batch|
  batch.each do |user
    # do stuff with user
  end
end
```