support async table queries

We introduce IPartialResult to represent a partial result of an
asynchronous query that is ready for consumption. IPartialResult
allows iteration over its contents, and allows synchronous or
asynchronous retrieval of the next partial result.
async version of Get
Merge pull request #68 from mmcgill/AsyncIO

Support for asynchronous reads