semaphore: switch from list to circular_buffer
semaphore: switch from list to circular_buffer

Fewer allocations, so faster.

The timed wait case gets more complicated, since circular_buffer may move
objects around; we have to track it around.  This involves an extra
allocation, but timed waits were slow anyway due to the need to allocate
the timer's callback.

linearregression/seastar,stamhe/seastar,koolhazz/seastar,linearregression/seastar,avikivity/seastar,mixja/seastar,acbellini/seastar,xtao/seastar,dreamsxin/seastar,shyamalschandra/seastar,cloudius-systems/seastar,joerg84/seastar,chunshengster/seastar,dwdm/seastar,kjniemi/seastar,wildinto/seastar,anzihenry/seastar,koolhazz/seastar,sjperkins/seastar,stamhe/seastar,bowlofstew/seastar,flashbuckets/seastar,syuu1228/seastar,chunshengster/seastar,printedheart/seastar,bowlofstew/seastar,scylladb/scylla-seastar,kjniemi/seastar,cloudius-systems/seastar,printedheart/seastar,hongliangzhao/seastar,stamhe/seastar,flashbuckets/seastar,dreamsxin/seastar,leejir/seastar,avikivity/seastar,norcimo5/seastar,bowlofstew/seastar,scylladb/seastar,printedheart/seastar,acbellini/seastar,norcimo5/seastar,shyamalschandra/seastar,xtao/seastar,scylladb/scylla-seastar,dwdm/seastar,acbellini/seastar,syuu1228/seastar,cloudius-systems/seastar,scylladb/scylla-seastar,sjperkins/seastar,wildinto/seastar,kjniemi/seastar,leejir/seastar,jonathanleang/seastar,hongliangzhao/seastar,hongliangzhao/seastar,xtao/seastar,flashbuckets/seastar,anzihenry/seastar,chunshengster/seastar,tempbottle/seastar,scylladb/seastar,joerg84/seastar,leejir/seastar,jonathanleang/seastar,scylladb/seastar,joerg84/seastar,koolhazz/seastar,linearregression/seastar,norcimo5/seastar,mixja/seastar,sjperkins/seastar,avikivity/seastar,syuu1228/seastar,dwdm/seastar,mixja/seastar,dreamsxin/seastar,tempbottle/seastar,tempbottle/seastar,shyamalschandra/seastar,jonathanleang/seastar,anzihenry/seastar,wildinto/seastar