This introduces `MemoryCount` which can be used across multiple `MemoryCounter`. Generally, `MemoryCount` is expected to live longer (e.g. over the entire life-time of a cache), while `MemoryCounter` is expected to only exists when actually counting the memory.