Make HttpServer work with the recent Channel changes, and implement support for request bodies
Rename FdChannel to FdInputChannel
Add unit tests for ServerKit::Server and improve its documentation
Improve ServerKit::BaseServer logging
Fix a bug in Channel
Add unit tests for FileBufferedChannel and fix all sorts of bugs
Extract ServerKit Hooks and RefGuard from Context.h to Hooks.h
Optimize ServerKit::BaseServer: do not call getClientName() when logging level is too low
Various microoptimizations
Fix compilation errors
Fix some ServerKit bugs

- HttpServer: fix secure header parsing.
- HttpServer: only force lowercase on non-secure headers.
- Server: fix error handling
Add useful LString methods
Minor fixes and optimizations in ServerKit::HeaderTable

- Include missing headers
- Deinitialize old header when overwriting a header
- Reorder code for better cache locality
In ServerKit::HttpServer, separate normal and secure headers in separate tables

This is because the number of normal headers varies, but the number of secure
headers are more or less constant.
Introduce new data structure: StringKeyTable
Fix casting correctness in ServerKit

We must be careful not to cast parent class void pointers, directly to
subclasses. That will break in multiple inheritance situations.