Fix search auto pagination

This fixes auto pagination for search results as they are wrapped in a hash layer instead of being an array which paginate expects. As you can read from the commit messages and see in the diff, I changed `Client#paginate` to take a block that can be used to write a custom concat process. The second commit changes search so it works with the newly minted block support. This is just what I've done to make it work for me, feedback welcome.