fetch: support http servers who buffer lines

The old parser assumed the \r\n\r\n that separated header from body
would be contained in a single read.  This is not the case if the http
server is line buffered.  This patch fills head and searches across
that.  It's a bit more work in that we're searching through stuff we
know doesn't contain it (we could optimize this by storing the length
and starting at $length-4), but that seems minor.