Brug: an Adaptive Memory (Re-)Allocator