add stream and pagination for contacts

If we were to separate it, we would have to create a separate module that both the real and fake implementation could import, as we don't want the fake implementation to require the real implementation.