A Session protocol that mimics URLSession, so we can stub responses. See why, how.
Example: go from
let client = YourAPIClient(session: URLSession.shared)
client.people(page: 0, pageSize: 10) { result in ... }
to
let sessionStub = JSONSessionStub.success(data: "{...10 users...}".data(using: .utf8), url: someURL)
let client = YourAPIClient(session: sessionStub)
client.people(page: 0, pageSize: 10) { result in ... }