datastore: runQuery as a stream. fixes #289

Correct me if I'm wrong, but it looks like the API behavior is to still return an end cursor after running a query with a limit. The stream will use that end cursor to continue fetching until the results cease to come back. So the effect is basically limiting the amount of results sent over the wire at once.