make take and top virtual and move them to BlockBase
REF: rename BlockBase->BaseBlock, LastActiveBlock->LastBlock
move implementation of take to BaseBlock
LastBlock is now derived from ActiveBlock
pass in block to check if merge is required instead of accessing class member
get rid of m_size
move put and try_put to LastBlock
Move implementation of top to ActiveBlock
add DeadBlock class; REF
add TODO
reduce virtual array capacity if possible
REBASEME: remove debug code
REBASEME: remove DeadBlock