Extract Spark rate limit windows from the Codex usage response and expose them as spark_session/spark_weekly quotas, reusing the existing prefix mechanism. Map codex quota types to readable dashboard labels. Fixes #3431