Add RateLimiter class and RateLimitMiddleware for in-memory rate limiting
of /api/matrix/* endpoints with the following features:
- Configurable requests_per_minute per IP (default: 30)
- Returns 429 Too Many Requests when exceeded with Retry-After header
- In-memory storage using deque for efficient timestamp tracking
- Automatic cleanup of stale entries every 60 seconds
- Respects X-Forwarded-For and X-Real-IP headers for proxied requests
Files added/modified:
- src/dashboard/middleware/rate_limit.py (new)
- src/dashboard/middleware/__init__.py (export new classes)
- src/dashboard/app.py (apply middleware to /api/matrix/* routes)
- tests/unit/test_rate_limit.py (comprehensive tests)
Fixes#683