Merge results from multiple batches, add option to control whether requests wait for result or return asynchronously, add specs

Apologies for the huge PR - I was using this gem in a project with a tight deadline and didn't have time to submit a PR until now.

Note that this PR changes the format of returned results, so probably best to bump the version.