Added deleters for smart pointers

simplified block_allocator template