add stream and pagination for contacts

I'm not sure if this is 100% what we want to do for the fake API. The problem is that in the real API, the `json_lines` parser takes the received data, and returns a list of every line parsed from json. This means that errors are returned as an array with one element, as the error is sent as one line in the response.

What I'm not sure of is if this is okay, or if we should go the long route of creating the actual response with the line breaks, and then parsing it with a copy of `json_lines`. @jerith @hodgestar @justinvdm comments?