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.
Sort of a key part of this commit. If we claim something is json we should make sure it actually is right there and then.