lsa: emergency segment reserve for compaction
lsa: emergency segment reserve for compaction

To free memory, we need to allocate memory.  In lsa compaction, we convert
N segments with average occupancy of (N-1)/N into N-1 new segments.  However,
to do that, we need to allocate segments, which we may not be able to do
due to the low memory condition which caused us to compact anyway.

Fix by introducing a segment reserve, which we normally try to ensure is
full.  During low memory conditions, we temporarily allow allocating from
the emergency reserve.

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