heap: fix memory leak in destructor

fixes #8977
heap: destroy nodes via allocator
heap: remove empty destructors