[WIP] Support aggregation command cursors and client options

Supersedes #187.
This is a good way of handling the two use cases of the method. I don't see any issues here. In order to specify options, we'll just have to pass in the full pipeline as the first argument.