* table storage grants
* simple shard on storage accounts
* use is not
* cosmos grant repo
* remove single storage connection string
* some fixes to dapper grant repo
* pattern matching
* add fallback to base PersistedGrantStore
* service collection extension cleanup
* cleanup
* remove unused Id
* empty string rowkey
* fix sharding method logic
* ttl for cosmos
* make ttl an int
* fixes to cosmos implementation
* fix partition key values
* catch notfound exceptions
* indenting
* update grantitem with custom serialization
* use new transform helpers
* grantloader perf test tool
* ref
* remove grant loader project
* remove table storage implementation
* remove table storage stuff
* all redis fallback to build to null
* revert sln file change
* EOF new line
* remove trailing comma
* lint fixes
* add grant to names
* move cosmos serilaizer to utils
* add some .net 8 keyed service comments
* EnableContentResponseOnWrite
* Fix type in EF grant repository
* Add Initial Redis Implementation
* Format
* Add Key to PersistedGrant
* Reference Identity In Microbenchmark Project
* Allow Filterable Benchmarks
* Use Shorter Key And Cast to RedisKey Once
* Add RedisPersistedGrantStore Benchmarks
* Run restore
* Format
* Update ID4 References
* Make RedisGrantStore Singleton
* Use MessagePack
* Use Cached Options
* Turn off Compression
* Minor Feedback
* Add Docs to StorablePersistedGrant
* Use existing Identity Redis
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>