feat(mt-14): gcs_prefix on Job, gcs_path helper, rewrite path sites
- gcs_path(job, *parts) helper in gcs.py: uses job.gcs_prefix if set,
falls back to job._id (legacy) — backward-compatible for all old jobs
- create_job: sets gcs_prefix=orgs/{org_id}/jobs/{job_id} when
organization_id is known; legacy jobs without org get null prefix
- Rewrote hardcoded f"{job_id}/{lang}/..." paths in:
- ingest_and_ai.py (4 upload sites)
- translate_and_synthesize.py (9 sites via bulk regex)
- render_accessible_video.py (3 sites: segments, video, captions)
- rerender_accessible_video.py (3 sites)
- tools/migrate_gcs_org_prefix.py: idempotent operator script —
preflight checks, copy→verify(count+md5)→mongo update→delete,
ThreadPoolExecutor(4), resume file, dry-run + rollback modes
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>