add Socket#readline

Uses Socket#read for non-blocking readline and respects :read_timeout
read response until status-line is found

RFC2616 states that the server may still send optional metadata in the
trailer for a chunked-message, with the understanding that it may be
discarded by the client if no TE header is sent.
These were already being ignored, since the response stops reading after
the last chunk. However for persistent connections, these must be read
before parsing the response for another request.