(evhtp_free): Free ssl_ctx if used.
Properly handle errors when allocating connections and requests.
Prevent double free of request.

When freeing a request, nullify the current request pointer
in the associated connection to prevent the request from
being doubly freed when the connection is freed.
Stop parsing when we have got a complete response/request.

evhtp_connection_t keeps a pointer to the current evhtp_request_t, so
starting to parse the next request before the previous is complete
will do nothing but break things.

Also the old code didn't detect parse errors occuring on the last
character...
(evhtp_connection_free): Call hook before freeing request.

If the connection is terminated while processing a request we want to
be able to inspect it.
Properly parse CONNECT request line.

For CONNECT the Request-URI portion of the Request-Line is always the
host name and port number destination of the requested connection
separated by a colon.
Support IPv6 literals in CONNECT authority string.
Separate fragment string from query string according to RFC 3986.

Saves the fragment string in uri->fragment.
(evhtp_parse_query): Remove strange handling of '?' and '/'.

They have no special meaning in an URI query, as clearly stated by RFC
3986, section 3.4:

 The query component is indicated by the first question mark ("?")
 character and terminated by a number sign ("#") character or by the
 end of the URI.

    query       = *( pchar / "/" / "?" )

 The characters slash ("/") and question mark ("?") may represent data
 within the query component.  Beware that some older, erroneous
 implementations may not handle such data correctly when it is used as
 the base URI for relative references (Section 5.1), apparently
 because they fail to distinguish query data from path data when
 looking for hierarchical separators.

libevhtp apparently fell under "older, erroneous implementations".
Fix parse errors on trailing whitespace in Content-Length header.
(evhtp_parse_query): Advance state to s_query_key after start.

Previously the first query parameter key would become empty.
Add hooks for host and port, and fill in authority struct.
(_evhtp_path_new): If len is 0 we set full to "/", just like path.
Do not use different API/ABI when regexps are disabled.

Put evhtp_callback_type_regex last in enum.
Fix warnings in test.c when EVHTP_DISABLE_REGEX is defined.
Add keepalive flag to connection.

We want to be able to tell the difference between a client closing the
connection in the middle of a request or before the first request, and
a client simply closing the connection after doing a successful
request with Connection: keepalive.
Add evhtp_hook_on_conn_error hook for connection errors.

The evhtp_hook_on_error hook is useless as it can't be called before
the request hooks are setup, and they aren't until we have parsed the
request line, which means we don't get errors before then.
Added the function evhtp_connection_new_dns().

Allows connecting to hostname using async DNS lookup.
(evhtp_connection_new_dns): Handle errors.
(evhtp_connection_new): Handle IPv6 addresses.