def remove_unloadable_constants!
      log("removing unloadable constants")
      autoloaded_constants.each { |const| remove_constant const }
      autoloaded_constants.clear
      Reference.clear!
      explicitly_unloadable_constants.each { |const| remove_constant const }
    end
def remove_unloadable_constants!
      log("removing unloadable constants")
      autoloaded_constants.each { |const| remove_constant const }
      autoloaded_constants.clear
      Reference.clear!
      explicitly_unloadable_constants.each { |const| remove_constant const }
    end
Remove the constants that have been autoloaded, and those that have been
 marked for unloading. Before each constant is removed a callback is sent
 to its class/module if it implements +before_remove_const+.

 The callback implementation should be restricted to cleaning up caches, etc.
 as the environment will be in an inconsistent state, e.g. other constants
 may have already been unloaded and not accessible.