WIP: Client Agnostic

# DO NOT MERGE

Looking for preliminary review feedback before moving forward to fix all the tests.

This still reads the entirety of response bodies to `byte[]` rather than allowing for streaming. That will be fixed once this lands.