feat(quotas): Add an opportunistic cache for Quotas
Implements an opportunistic quota cache. Closes: INGEST-638.
The cache is aware of the currently used quota and opportunistically accepts N% of the remaining quota before synchronizing with the central cache (Redis).
By default the cache is not enabled. I plan to test the cache and collect some telemetry in a test environment.
In a follow up I want to re-evaluate how the percentage is calculated and potentially do it normalized as a percentage of 1 second or 10 seconds, to not run into issues with very large quota windows.
I had to change how the quantity is handled, I added the quantity to the RedisQuota instead of carrying int separately, this makes it possible for the cache easily to work per quota. All the underlying machinery already worked per quota, making this a very simple refactor.