The method should have the same return values as IO#read would.
When EOF is met at the beginning, it returns `nil` or `''` based on whether a length was given.
The `:nonblock => false` case currently does this, since it simply calls `@socket.read`.
The `:nonblock => true` case is returning '' when `max_length` is given when it should be `nil`.

In fact, if a response is not chunked and supplies no 'Content-Length', the catch-all case for a
request with a `:response_block` would enter an infinite loop.
Same issue with the new `Socket#readline` implementation.

Also, the `return` could be removed. Or since this is just acting as a guard condition, the rest
of the method could be moved out of the `else` and below it to save some indent.