When destroying connection coro, remove correct connection from DQ
Reduce amount of branching in death queue linked list

This uses the same technique as list.h: a circular, doubly-linked list.
Being circular, the amount of branches necessary to add or remove items
from the list is greatly reduced.

Since connection array indices are used as pointers, the "n" member
points to the slot reserved for the epoll file descriptor, which is
never used as a lwan_connection_t.  This is unique per thread, so no
locks are necessary.  However, it might lead to false sharing; need to
investigate.  Worst case scenario, just adding a test in idx_to_node/
node_to_idx functions to consider negative indices as a pointer to the
inlined head node would work.