Consistent use of preprocessor #ifdef/#elif in lwan-coro.[ch]
Destroy username/password string before freeing them
Reduce config_close() call sites in _create_realm_file(0
Use memchr() instead of strchr() in _authorize().

Although base64_decode() adds a '\0' to the end of the decoded string,
memchr() is a tiny wee little bit faster as it doesn't need to look for
it in the string while scanning. And there's a length parameter, which
is nice as well.
Move enums used by STRING_SWITCH() to the functions they're needed.
Fix user after free in hash implementation.

Fix comes from Lukas Anzinger and has been commited in kmod as
86e19e9acd62e5729fa66e850fd13df991ae7fca.  His words: "If a value is added
to the hash under a key that already exists the new value replaces the old
value for that key.  Since key can be a pointer to data that is part of
value and freed by hash->free_value(), the key must be also replaced and not
only the value.  Otherwise key potentially points to freed data."
Plug possible memory leak after 3961407
Cleanup IMPLEMENT_FUNCTION() in lwan-status.c
Better handling of strtol() in parse_long()

Based on checks performed by OpenBSD strtonum().
Open files using O_NONBLOCK as well.
Setting SO_REUSEADDR only makes sense before bind()
Pre-convert HTTP status code instead of using APPEND_INT8()
Cleaner overflow checking while writing custom headers
Reduce scope of 'len' variable in lwan_prepare_response_header()
Simplify APPEND_STRING() macro
SO_REUSEPORT only makes sense before bind() as well
Clean up lwan_socket_init() function
Move leading slash removal loop to request handler

This is a step in unifying the request caching layer in lwan.
If blocks with 'return' shouldn't have else blocks
Move extension MULTICHAR_CONSTANT_L declarations closer to switch