storage_proxy: Encapsulate access to range tokens
storage_proxy: Encapsulate access to range tokens

The wrappers also take care of cases when each bound is undefined, and
return mimimum or maximum token respectively, which fixes undefined
behavior in get_restricted_ranges().

Alternative solution would be to make partition_range use a different
type of range, the one where bounds are always specified. However it's
not worth introducing a new range type just for those few users.

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