initial punycode support

rework the configless mode: change flags and generate certs

added support for location blocks

added support for location blocks

void-ify some functions their return value is no longer used, it's only confusing at this point.

refactoring state management instead of having a flag to discern between two different behaviours in S_SENDING, split that state into S_SENDING_FILE and S_SENDING_CGI (this will also make it easier in the future to add other sending states). While there, also get rid of `goodbye' and make start_reply advance the state machine by itself.

added index option

accumulate the whole response line for CGI scripts

use a helper to handle no-body replies

rename goodbye -> close_conn

fix redirects make sure redirect starts with /. This also requires a tweak in check_path, in the case we go open_file -> send_dir -> open_file -> check-path and the path starts with a slash.

ensure we're in the correct state

use fnmatch on the domain name

simplify flow when SNI is missing this also gives a chance for users to use the default host even if SNI is missing.

don't crash on wrong vhost or missing SNI the new logging code was crashing if the client didn't support SNI or if required an unknown vhost: this because we short-circuit in handle_handshake to an error, so c->iri isn't populated yet (we don't even read the request). fixes #1