stop to accept more requests when maximum accepted is achieved

this change makes sure that a worker don't handle more requests than it can achieved.  The new workflow is quite more simple:

1. listeners are put in the poller. On read we try to accept on them.
2. When a connection is accepted it is put in the execution queue
3. When a request is done and the socket can be kept alived, we put it in the poller, on read event we will try to handle the new request. 
4. If it is not put out of the poller before the keepalive timeout the socket will be closed.
5. if all threads are busy we are waiting until one request complet. If it doesn't complete before the timeout we kill the worker.

fix #908
I you don't leave room to the new client in some case you won't be able to accept any more any new connection just discussing with some clients which can at the end create a DDOS.  Imo we should do it. Also it appears we already had a way to handle that in the response by setting the must_close flag to true, so the change was actually really simple.

The keepalive timeout is still there so we make sure that we won't keep alive a connection too long.