datastore: runQuery as a stream. fixes #289

Currently, the user would get all the results of the query, regardless of the limit they set. The limit only affects how many results come through per chunk dispersed from the API. I suppose this could be useful if I anticipate 1000s of results, but only want to use the network in 100-result chunks.

To make sure I'm clear, the default limit would query until we hit n results? I think it would probably be most clear to not default a limit, but rather honor the integer passed to `.limit()`.