gate: use with_gate idiom
gate: use with_gate idiom

Aside from guaranteeing that we will always leave correctly, it will also
allow us to change the implementation of the enter / leave pair without
disrupting existing code.

Signed-off-by: Glauber Costa <f8b79557d19b40666ebe336545a0b6178af65685@cloudius-systems.com>

duarten/scylla,rentongzhang/scylla,gwicke/scylla,kangkot/scylla,kjniemi/scylla,bowlofstew/scylla,asias/scylla,avikivity/scylla,avikivity/scylla,tempbottle/scylla,scylladb/scylla,linearregression/scylla,aruanruan/scylla,avikivity/scylla,glommer/scylla,guiquanz/scylla,scylladb/scylla,duarten/scylla,rluta/scylla,acbellini/scylla,eklitzke/scylla,asias/scylla,acbellini/scylla,kangkot/scylla,rentongzhang/scylla,glommer/scylla,justintung/scylla,stamhe/scylla,linearregression/scylla,raphaelsc/scylla,dwdm/scylla,raphaelsc/scylla,aruanruan/scylla,justintung/scylla,eklitzke/scylla,stamhe/scylla,gwicke/scylla,wildinto/scylla,gwicke/scylla,rluta/scylla,tempbottle/scylla,capturePointer/scylla,duarten/scylla,senseb/scylla,dwdm/scylla,rluta/scylla,shaunstanislaus/scylla,shaunstanislaus/scylla,senseb/scylla,phonkee/scylla,kjniemi/scylla,wildinto/scylla,guiquanz/scylla,scylladb/scylla,capturePointer/scylla,asias/scylla,linearregression/scylla,glommer/scylla,wildinto/scylla,phonkee/scylla,capturePointer/scylla,phonkee/scylla,scylladb/scylla,victorbriz/scylla,tempbottle/scylla,bowlofstew/scylla,rentongzhang/scylla,eklitzke/scylla,justintung/scylla,respu/scylla,raphaelsc/scylla,bowlofstew/scylla,guiquanz/scylla,dwdm/scylla,victorbriz/scylla,stamhe/scylla,shaunstanislaus/scylla,acbellini/scylla,victorbriz/scylla,senseb/scylla,respu/scylla,kjniemi/scylla,aruanruan/scylla,respu/scylla,kangkot/scylla