Incremental HTTP/1.1 response parser.
Operates as a state machine. Feed bytes via parse/2, get back
parsed response fragments, updated state, and unconsumed bytes.
Summary
Types
@type chunk_state() :: :chunk_size | {:chunk_data, non_neg_integer()} | :chunk_crlf | :chunk_trailers
@type parse_state() :: :idle | :status | {:headers, non_neg_integer(), [{String.t(), String.t()}]} | {:body_content_length, non_neg_integer()} | {:body_chunked, chunk_state()} | :body_until_close
@type response_fragment() :: {:status, non_neg_integer()} | {:headers, [{String.t(), String.t()}]} | {:data, binary()} | :done