consistent terminology
move this into mop::util
use a less ugly name
need to use the right metaclass here
add test for BUILD and DEMOLISH on metaclasses

for some reason, DEMOLISH sometimes isn't called - this seems to be
related to the no-fetch bug in the mro.
"fix" the no-fetch bug

a better fix would be for the separate DESTROY cache to respect
mro::method_changed_in, but i'm not sure if that's possible
don't create multiple copies of the closed version of the metaclass