add stream and pagination for contacts

I think we want to do something like:
```python
def contact_generator():
    for key in contact_keys:
        d = self.contact_store.get_contact_by_key(key)
        d.addCallback(contact_to_dict)
        yield d

returnValue(contact_generator())
```