future: add a utility to promote a type to a its own future
future: add a utility to promote a type to a its own future

Some of the core functions accept functions returning either an immediate
type, or a future, and return a future in either case (e.g. smp::submit_to()).

To make it easier to metaprogram with these functions, provide a utility
that computes the return type, futurize<T>:

   futurize_t<bar>          => future<bar>

   futurize_t<void>         => future<>

   futurize_t<future<bar>>  =>  future<bar>

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