datastore: runQuery as a stream. fixes #289

But in the case of streams that is not exposed to the user and they get all the results regardless of what they set right? What is the advantage for the end user of having this available? Should we just set a default that we think it's sensible?