http: Fix uri parsing.
log: Add %S and %R to log format.

Add %S (vhost server signature) and %R (vhost document root) to
available log formats.
config: Add config_group to mk_section.

A value within parenthesis after the section header.

The following header
    [Fastcgi(main)]
will be parsed as

    struct mk_section section = {
        .name = "Fastcgi",
        .config_group = "main",
    };
sched: Use struct sockaddr_storage.

Fix potential problems with IPv6 addresses.
plugin_next: Add struct sockaddr * to request info.
log: Remove struct sockaddr argument from mk_format.

Use sockaddr of struct mk_request_info.
log: Add format validation options.
log: Add fallback for address and allow zero length path.
plugin_next: Remove unused code in mk_response_redirect_url().
mk_plugin: Handle requests without vhost set.
http: Change type of method and protocol of mk_request_info.

Rename mk_http_header_finish() to mk_http_header_finalize().
Fix errors in mk_http_header_finalize() when vhost not set.
plugin_next: Fix error in mk_response_error_page() when vhost not set.
config: Rewrite host parse and find.

Find hosts by protocol and servername.
Change types in struct host, using simple NULL terminated char **
instead of mk_list.
redirect: Add basic redirect plugin.
format: Move mk_format_* from mk_log.c to mk_format.c.

Factor request/response formatting into separate file.
mk_format: Reserves one byte for '\0' in mk_format().
mk_config: Fixes mk_config_host_add_servername().

Set correct member in config, preventing overwrite of protocols.
mk_log: Rewrite with local buffer and splice.

Write log entries to local thread buffer, which are then written to file
pipe when full.
mk_http: Fixes bad protocol checks and keep alive problem.
mk_ring: Adds builder blocks for atomic mpmc ring buffer.

Adds building blocks and example implementation of void* multiple
consumer multiple producer ring buffer.