Update `SpringFactoriesLoader` so that `null` is never used for the cache key. Prior to this commit, calling `forDefaultResourceLocation` with `null` and `ClassUtils.getDefaultClassLoader()` would provide different `SpringFactoriesLoader` instances rather than making use of a single shared cached instance. See gh-28416