Move metering's cron work into account and repository alarms

Storage gauges no longer come from a five-minute walk over every repository, site scope and account: each scope reports its storage to the accounts it bills a few minutes after its storage tables change, each account re-sums its scopes, a transfer moves gauges at once and deletion retracts them. LFS gauges follow lfs_usage, levels carry into each new month, expired holds are released when they expire, budget alerts run after usage moves, and old usage events are collected hourly, all from the account's own alarm. AccountState gets the same task machinery as RepoState (debounced marks, precise deadlines, failure backoff).

Assisted-by: Crush
taigrrcommitted parent 755c372123621cc79bff03b04254338e63f58536e5dfdb5Browse files
21 files changed+737−277

Rendering diff…