Use client to fetch, resolve body and content issues

So, the original goal of this branch was just to use the actual client to fetch the api docs, and it now does that (though it doesn't do anything truly asynchronously). But I kind of got sidetracked. Partially fixes #73 but does not number #71.

Turns out a bunch of the tests expected HTTP bodies in GET requests, which shouldn't happen. It was also a bit awkward how we managed content types. So I killed off a lot of body awkwardness and content type awkwardness. Pretty sure this isn't a breaking change unless you're depending on a bad behavior.

Also a couple small refactors for qol.