httpd: simplify connection termination
httpd: simplify connection termination

The current implementation uses a sort of "manual reference counting"; any
place which may be the last one using the connection checks if it is indeed
the last one, and if so, deletes the connection object.

With recent changes this has become unwields, as there are too many cases
to track.

To fix, we separate the connection into two streams: a read() stream that
is internally serialized (only one request is parsed at a time) and that
returns when there are no more requests to parse, and a respond() stream
that is also internally serialized, and termiantes when the last response
has been written.  The caller then waits on the two streams with when_all().

dwdm/seastar,leejir/seastar,wildinto/scylla,sjperkins/seastar,wildinto/scylla,avikivity/scylla,flashbuckets/seastar,aruanruan/scylla,avikivity/seastar,shaunstanislaus/scylla,raphaelsc/seastar,jonathanleang/seastar,stamhe/seastar,slivne/seastar,kangkot/scylla,justintung/scylla,anzihenry/seastar,syuu1228/seastar,avikivity/seastar,kangkot/scylla,justintung/scylla,flashbuckets/seastar,slivne/seastar,gwicke/scylla,shaunstanislaus/scylla,acbellini/seastar,bowlofstew/seastar,jonathanleang/seastar,hongliangzhao/seastar,rentongzhang/scylla,kjniemi/seastar,duarten/scylla,hongliangzhao/seastar,cloudius-systems/seastar,capturePointer/scylla,glommer/scylla,joerg84/seastar,phonkee/scylla,asias/scylla,gwicke/scylla,eklitzke/scylla,victorbriz/scylla,asias/scylla,wildinto/seastar,stamhe/seastar,acbellini/scylla,kjniemi/seastar,tempbottle/seastar,kjniemi/scylla,linearregression/seastar,linearregression/scylla,scylladb/seastar,hongliangzhao/seastar,duarten/scylla,bowlofstew/scylla,joerg84/seastar,scylladb/scylla-seastar,scylladb/scylla,duarten/scylla,joerg84/seastar,xtao/seastar,guiquanz/scylla,glommer/scylla,bowlofstew/scylla,kjniemi/scylla,rluta/scylla,linearregression/seastar,anzihenry/seastar,flashbuckets/seastar,wildinto/scylla,sjperkins/seastar,ducthangho/imdb,dwdm/seastar,shyamalschandra/seastar,justintung/scylla,ducthangho/imdb,bzero/seastar,printedheart/seastar,eklitzke/scylla,capturePointer/scylla,victorbriz/scylla,mixja/seastar,scylladb/scylla,shaunstanislaus/scylla,glommer/scylla,capturePointer/scylla,kangkot/scylla,tempbottle/scylla,linearregression/seastar,dreamsxin/seastar,gwicke/scylla,scylladb/seastar,dreamsxin/seastar,respu/scylla,xtao/seastar,aruanruan/scylla,rentongzhang/scylla,raphaelsc/seastar,stamhe/scylla,tempbottle/scylla,dwdm/scylla,scylladb/scylla,phonkee/scylla,scylladb/scylla-seastar,wildinto/seastar,shyamalschandra/seastar,victorbriz/scylla,leejir/seastar,anzihenry/seastar,kjniemi/seastar,wildinto/seastar,stamhe/scylla,senseb/scylla,chunshengster/seastar,cloudius-systems/seastar,dreamsxin/seastar,rentongzhang/scylla,raphaelsc/seastar,tempbottle/seastar,dwdm/scylla,dwdm/seastar,avikivity/scylla,bzero/seastar,stamhe/scylla,aruanruan/scylla,guiquanz/scylla,mixja/seastar,raphaelsc/scylla,scylladb/scylla,chunshengster/seastar,guiquanz/scylla,eklitzke/scylla,stamhe/seastar,mixja/seastar,norcimo5/seastar,ducthangho/imdb,rluta/scylla,avikivity/scylla,senseb/scylla,koolhazz/seastar,linearregression/scylla,acbellini/scylla,bzero/seastar,dwdm/scylla,kjniemi/scylla,phonkee/scylla,norcimo5/seastar,sjperkins/seastar,cloudius-systems/seastar,koolhazz/seastar,leejir/seastar,senseb/scylla,rluta/scylla,norcimo5/seastar,jonathanleang/seastar,acbellini/scylla,tempbottle/scylla,respu/scylla,printedheart/seastar,shyamalschandra/seastar,syuu1228/seastar,avikivity/seastar,syuu1228/seastar,respu/scylla,chunshengster/seastar,scylladb/scylla-seastar,printedheart/seastar,bowlofstew/scylla,bowlofstew/seastar,linearregression/scylla,acbellini/seastar,tempbottle/seastar,asias/scylla,raphaelsc/scylla,slivne/seastar,koolhazz/seastar,raphaelsc/scylla,acbellini/seastar,xtao/seastar,bowlofstew/seastar,scylladb/seastar