Stability checkpoint — first Python mirror baseline (waves 1-9 + wave 2)

Initial scaffolding waves of mirador-service-python (Python mirror of
the Java mirador-service).

Waves shipped (per ADR-0001 stack choice) :
- Étape 1 : pyproject + Dockerfile + .gitlab-ci modular
- Étape 2 : customer CRUD (v1/v2 dispatch via X-API-Version) + 12 tests
- Étape 3 : actuator + Redis recent-buffer + 12 tests
- Étape 4 : Kafka request-reply broker + 10 tests + ADR-0004
- Étape 5 : OpenTelemetry SDK + auto-instrumentation + ADR-0003
- Étape 6 : Alembic V1 migration + 3 tests + workflow doc
- Étape 7 : docker-compose dev stack + bin/ ops scripts
- Étape 8 : middleware (structlog + request-id + CORS + slowapi) + ADRs 0002 + 0004
- Étape 9 : coverage gate 65 → 80 (baseline 84% via greenlet hook)
- Wave 2 : /todos endpoint + /auth/me + service.namespace OTel attr + ADRs 0005 + 0006 + testcontainers integration scaffold

Quality gate : 82 tests passing · ruff ✅ · mypy strict ✅ · coverage 83.42 %
(unit) · 4 integration tests scaffolded (opt-in via pytest -m integration).

NOTE on the 'wait for post-merge main pipeline' rule from
~/.claude/CLAUDE.md : this Python repo's default_branch is dev (not
main), so workflow rules trigger only on dev pushes. No main pipeline
exists to wait for. First tag is anchored on local validation
(82 tests + ruff + mypy clean) ; future tags will wait for green
dev pipeline pre-merge once the runner is back online.

See : https://gitlab.com/mirador1/mirador-service-python