Split lwan_request_t between request- and connection- related structs

The request structure has been there historically since lwan did not support
keep-alive connections in the beginning.  When it was implemented,
keep-alive support has been shoehorned into the request structure.  Since
lwan preallocates a lot of memory beforehand, lots of memory were being
allocated without need as they would only be actually needed when lwan is
processing a connection.

By splitting the structure (not completely yet, there are some leaky
abstractions that should be taken care of), there was a noticeable reduction
in memory usage (~42%).  Speed should have increased a little bit as well,
although I'm too lazy to measure.

A nice thing about this is that we could get rid of _reset_request(), and
that request structures are allocated in each coroutine stack -- which is
essentially free as we're not using much stack anyway.

There are still a few tricks in my sleeve to reduce memory usage even
further, such as keeping flags only in one place (reducing 4 bytes per
request!), and keeping the file descriptor and source IP address in the
data.u64 epoll member (this might not be done though since we eventually
have to support IPv6, but hey -- we could use those unused 32-bits for other
"static" things; we'll see).