has_body:t -> bool should return [`Yes|`No|`Unknown]

The convention that is being copied is core's Sys.is_file/directory
function. This fixes the issue where the lwt client will not read
responses that don't specify the content length.

I'm not thrilled about this change but it's fixing a bug for an actual users so I think we should definitely do something here. Ideally, I'd much rather not expose `has_body` outside the library at all (or at least we figure out the story for this better) but I don't know how to do this since hiding it in the mli hides it for our own use as well.