add stream and pagination for contacts

I think we should be retrieving just the list of contact *keys* and then fetching and yielding contacts one by one.