Pagination & rewind feature

This patch will let you refill the queue using pagination, you can also rewind the queue to start at the beginning. This is fully backward compatible.

The queue now takes advantage of pushing multiple values at once when running with Redis >= 2.4

usage:
```
queue = RefillingQueue.new resque_client, "my_queue", :refresh_every => 30.seconds do |page|
  expensive_operation(page).map(&:id)
end
```

when reaching the end of the pages, `queue.pop` will return nil, call `queue.pop` again to restart at the first value.

You can call `queue.rewind` at any time to rewind the queue, next time you call `queue.pop`, the first value will be returned
supporting nil feels wrong ... I expect the block to return an array, maybe just return an empty array from the client