feat(security): rate limiting + GraphQL query complexity (CVG-56)
Rate limiting via @nestjs/throttler with three tiers: short (10 req/10s burst), medium (60 req/min sustained), long (300 req/hour). Global ThrottlerGuard. Storage in-memory for now; Postgres-backed adapter tracked in CVG-66 for multi-instance. GraphQL query complexity via graphql-query-complexity. Apollo plugin estimates per-field cost (default 1, override via @Field({ extensions: { complexity } })) and rejects above MAX_COMPLEXITY=1000. Per-role budgets tracked in CVG-65.