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.
I know you just moved this around and made it not mutate, but I think this special case for just datetime seems weird. 

I think this should handle `date` as well (since those are both supported types in 1.2), and the datetime format this is using is not correct. I believe it should be using  date-time from http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14, which is explicitly called out in the 2.0 spec.

I'd be fine ticketing this for later if you don't want to do it now.