It's very unclear what requirements there are around object lifetimes for RuntimeProfile objects and the Counter objects that live in ObjectPools. See
IMPALA-5878 for a case where it's very hard to reason about correctness of the memory management.
We should document the requirements and also consider simplifying the ownership model. E.g. having each RuntimeProfile own all of its counters via unique_ptrs.