split ::new and ::new_inheriting_instance; extension modules should only inherit with declaration of ruby inheritance, meaning manual calls to #register_parent will not cause extension modules to inherit unless explicitly declared as if performed by event hook (include/extend/subclass/instance).