Make death queue be actually a queue

This removes the -- wrong -- ring buffer implementation and substitute
that with a doubly-linked list. In order to save memory, instead of
next/prev pointers, int indices to the connection array is used; this
fits nicely into the hole that has been recently opened in the
connection structure.

Now, every time the time_to_die is updated, the connection is pushed to
the end of the queue. This way, _death_queue_kill_waiting() will work
as it was intended to.

Also, connections are now automatically removed from the death queue
when their respective coroutine is destroyed.

Closes #55.
Add a link to the freegeoip demo installation to the home page.
Coroutine must be removed from death queue before closing connection

Or else a race condition might happen if using scheduler other than the
x86-64 scheduler (which might make a new connection land in another
thread).