"backport" custom root pushing callbacks from upstream boehm

useful for plugging in a new temp allocator