No longer try to track the size of the cache ourselves. This is too tricky
and the only way to be safe is to assume there's more memory taken than there
actually is, which isn't efficient. (As an example, how do you calculate/track
the size of an key that's interned?). Instead, we just look at the total size
of the program.

Also, the GC will now delete empty groups.