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
21 files changed+737−277
Rendering diff…