Simplify providers by moving the cache state onto the repository object. A repository cache object is now passed to provider methods. This cache object contains the current state of the provider for the current repository. This allows providers to be passed from one repository to another without using a clone.
**Full Changelog**: https://github.com/ZechCodes/Bevy/compare/v2.0.0b4...v2.0.0b5