remove DeadBlock, LastBlock and BaseBlock
REF
set end pointer correctly when instantiating block of lvl >0
REF: reduces checks if merge is required
REF: rename
REBASME: preliminary work for handling dead blocks
REF: extract method to move item pointers from one block to another
fix: order of member initialization
add some additional assertions
make merging more intuitive
Instatiate dead block correctly
create dead block even if it will be the last block
more intuitive way to maintain the last block
debug code to check blocks
TMP: works for 1 thread
a block does not shrink itself (for now)
add some assertions
REF merging blocks in put
do not attempt to shrink blocks of lvl 0
fix: we may have two consecutive dead blocks of same level