Replaces the hardcoded PROJECT_CODES array with an admin-managed
`ProjectCode` model, mirroring the Delivery Locations pattern (PR #100):
- ProjectCode model (unique `code` + isActive) + migration seeding the
five previously-hardcoded codes; PO.projectCode stays a free-text
snapshot (no FK) so history/exports/imports are unchanged.
- manage_project_codes permission (Manager + SuperUser + Admin).
- /admin/project-codes CRUD screen (table + Add/Edit + activate/delete)
and an Administration sidebar link.
- ProjectCodeField now takes `options` from the active codes; the three
PO forms + pages fetch them from the DB. Static list removed.
- Unit test reworked to the options API; CRUD integration test added;
documented in App/CLAUDE.md.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>