v0.7.0: proxq async job queue proxy, test fixes

- add proxq (psyb0t/proxq:v0.4.1) as always-on service in front of LiteLLM
  async HTTP job queue: submit request → get job ID → poll for result
  nginx routes /q/ to proxq, strips prefix, forwards to litellm:4000
  uses existing redis on DB 1 (litellm uses DB 0)
  whitelist mode: only OpenAI API paths are queued
    /v1/chat/completions, /v1/completions, /v1/embeddings,
    /v1/images, /v1/audio, /v1/responses, /chat/completions,
    /completions, /embeddings
  everything else (health, models, keys, UI) passes through directly
  10m upstream timeout for slow LLM calls, 1h job retention
- proxq config via docker compose configs block (YAML)
- nginx: add /q/ location block with proxq rate limit zone (120r/m)
- nginx depends_on proxq (service_healthy)
- add tests/test_proxq.sh (4 tests):
  health passthrough, model list passthrough,
  full async job lifecycle (submit/poll/content/cancel),
  nonexistent job 404
- fix test_health_cloudflared_tunnel: support named tunnels (not just quick tunnels)
- fix test_nginx_admin_rate_limit: fire 40 requests (burst=20 needs >21 to trigger)
- fix test_nginx_claudebox_status: handle 503 during warmup
- fix security tests: accept any non-200 as rejected (401 or 503)
  browser auth, claudebox auth, claudebox file auth,
  claudebox run auth, browser js injection, cross-token
- README: add proxq to architecture diagram, services table,
  async usage examples, update test count to 73