fix uri query decoding

If we decode the query as a uri component, we may end up with an invalid query
string. For example:

    http://example.com/?a=%3d

Is a uri with a query string whose value is "?a=%3d". If decoding the query
string as a uri component, its decoded value will be "?a==" which is not a
valid query string.

The proper way to decode is to parse query components. For this example, we
end up with one query parameter with the name "a" and the value "=".

This way, we also are sure to correctly encode uris.
add http_uri_add_query_parameter
only send a timeout response when the time is right

Only send it:

- If the connection is a server connection.
- If the beginning of a request has been received.
- If the request handler has not been called.
add http_msg_content_type_is()
silently handle ECONNRESET on read()
allow clients to send custom headers
simplify bufferization option
enable body bufferization for responses
add a pvalue parser
parse the Content-Disposition header