refactor to make the HTTP parser reusable.

WIP: this change is extracting hackney HTTP parser from the module
`hackney_response` to make it reusable.
fix hackney_http

Now the parser is able to handle the responses from the HTTP parser in
`hackney_http` .
document the http parser and sync the doc
dont't use a callback pas an opaque state instead.
parser is an opaque type
regen the doc
simplify the code.

Paasing an empty binary to the execute method is more logical here.
hackney_stream is now using hackney_http
fix hackney_http
keep the client around if needed.