avoid blocking operations in the implementation of an input port

If the reading function passed to `make-input-port' blocks,
then things can get stuck: functions on the port that are
not supposed to block can block, and breaks are typically
disabled.

For example, with the code at this point, if a HEAD request
replies with a redirect, then redirect processing can stall trying
to get chunked input that isn't there --- and Ctl-C doesn't
break as it should. (This patch doesn't fix the HEAD problem,
only the Ctl-C problem.)
don't try to read non-existent body in HEAD response

... when the response is a redirect, since a HEAD
response has no body.
Merge pull request #3 from mflatt/response-handling

HEAD and redirect responses