This changes the Persist syntax a bit to simplify its usage.
This removes the `with Persistable`
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced a new `persistJson` method for JSON-based state
persistence, simplifying how persistence is integrated and allowing for
custom encoding/decoding.
- Added a `key` getter to provide default storage keys for persisted
providers.
- Exposed `NotifierPersistX` and related persistence utilities for
broader use in persistence scenarios.
- **Refactor**
- Unified and updated type signatures for notifiers and persistence
methods, improving type safety and consistency across providers.
- Simplified persistence API usage by removing the need for mixins and
named parameters, favoring direct method calls with positional
arguments.
- **Documentation**
- Updated documentation and code examples to reflect the new persistence
API and usage patterns.
- **Tests**
- Enhanced test coverage to validate the new persistence approach and
updated type signatures.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->