29 changes since v6.0.0-pre.2

Changelog (excluding merge commits):
* (f800cbc) [ManlyMarco] Add GlobalMetadataPath setting (#978)
* (cbd70eb) [ManlyMarco] Automatically load all interop assemblies before loading plugins (#777)
* (2474dce) [aldelaro5] Use PascalCase for the cache versioning const
* (ede28de) [aldelaro5] Make the cache version a const
* (ae4d7bb) [aldelaro5] Actually write the cache version in SaveAssemblyCache
* (d389ed8) [aldelaro5] Add versioning to CachedAssembly
* (be1beb5) [aldelaro5] Address code review round 5
* (7315b7d) [aldelaro5] Make the default providers classes internal in their assemblies
* (6b38cee) [ManlyMarco] Fix failing to initialize if game's Data folder is just 'Data' (#975)
* (c02ad9c) [aldelaro5] Add an obsolete property for compatibility
* (e0a81df) [aldelaro5] Rename Location to prevent compilation with it
* (d44b93b) [aldelaro5] Use the IL2CPPChainLoader instance for il2cpp to preserve compatibility
* (e9337e9) [aldelaro5] Revert the removal of the il2cpp chainloader instance
* (0a4f1d6) [aldelaro5] Accomodate breaking changes in preparation for api refactors
* (5a32424) [thegu5] Bump Cpp2IL (#967)
* (24cf635) [aldelaro5] Ensure providers and plugins / patchers folders are created if they don't exist
* (4597be0) [aldelaro5] Remove files caching from CachedPluginLoadContext, make it forward the call instead
* (ba3fac9) [aldelaro5] Upgrade MonoMod to 22.7.31.1 to fix old mono preloader crashes (#973)
* (40643ff) [aldelaro5] Offload the load context caching to bepinex
* (1f182c7) [aldelaro5] Correct the symbols resolution and rename the method
* (ee5918b) [aldelaro5] Address minor code review
* (e2396d2) [aldelaro5] address code review round 3
* (b729aee) [aldelaro5] Address code review round 3 (first part)
* (bfc539b) [aldelaro5] Address code review round 2
* (b688bfa) [aldelaro5] Add a Source property to PluginInfo
* (d8dd404) [aldelaro5] Address code review
* (4d47c3c) [aldelaro5] Address code review
* (952c74f) [aldelaro5] Implement Patcher and plugin providers
