Various microoptimizations
Fix compilation errors
Fix some ServerKit bugs

- HttpServer: fix secure header parsing.
- HttpServer: only force lowercase on non-secure headers.
- HttpServer: fix default response generation.
- 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.