close
Close every loaded and retired bundle's classloader and reset the controller to empty. Wraps each close in runCatching so a single failure does not skip the remainder. Safe when empty; safe to call twice (the second call sees empty lists and is a no-op). After this call loadedBundles is empty and bundleProvider is null, so no consumer can read a stale, closed bundle.