add an isa cache too

nothing can invalidate it at the moment, since we don't have
set_superclass or anything like that
not sure why this was being done, but it's wrong
basic metaclass compatibility (#28)

still need to look into metarole compatibility fixing, but this should
be a start
everything should be a subclass of mop::object
this hack is only relevant for the bootstrap
clean up formatting a bit
make whether or not a class is closed introspectable
fix metaclass compat for closed classes
this isn't necessary either

touching @ISA is already sufficient to clear the method cache
cleanups
add some tests for roles inheriting from mop::object (fixes #64)
fill in more of the bootstrap test for mop::role
test that FINALIZE and new generate conflicts properly (fixes #65)
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