Rebrand: Ahenfie -> MaxYields

Renamed the product name everywhere it appears in the codebase — page
titles, login/verify screens, PDF headers and footers (invoices,
payslips, reports, booking confirmations), SMS/email copy, the Super
Admin platform branding, CSV export headers, and the shared JS AJAX
helper (window.ahenfiePost/ahenfieCsrf -> window.maxyieldsPost/
maxyieldsCsrf, used across ~10 pages for the AI features' "Suggest
with AI"/"Summarize this" buttons and the Settings "Test Connection"
buttons). Also updated illustrative example text in comments/
placeholders (admin:create's example email, subdomain examples in
TenantResolver/the tenants migration, the admin login placeholder) and
the real "Contact Support" mailto link.

Confirmed via a full scope check first: no PHP namespace or class name
was ever tied to "Ahenfie" (this app has always used the standard
CodeIgniter App\ namespace), so this is purely a text/string-level
rename — no structural refactor, no autoloading changes.

Deliberately NOT changed, and flagged rather than silently decided:
- Demo seed data (guest/staff emails like manager@ahenfie-demo.test,
  the "Ahenfie Demo Hotel" tenant name) — these are real, already-
  relied-upon values sitting in actual databases (including the live
  site), not branding text. Renaming them is a data change, not a code
  change, and needs a deliberate decision about whether to also update
  the already-provisioned rows.
- WhatsApp template names in MessagingService::TEMPLATES
  (ahenfie_booking_confirmation, etc.) — these must match templates a
  tenant has already created and had Meta approve in their own
  WhatsApp Business account. Renaming them in code without knowing
  whether any tenant has already approved templates under the old
  names would silently break WhatsApp messaging for that tenant, not
  just relabel something cosmetic.

Verified end-to-end against the real running app, not just linted: all
52 touched files pass php -l; login/dashboard/settings/backup/group-
bookings/admin-login all load correctly; a real AJAX call through the
renamed maxyieldsPost path (Reports' "Summarize this") still works
end-to-end; a real folio invoice PDF still renders correctly after the
template rename. Confirmed the only remaining "Ahenfie" text anywhere
in a rendered page is the demo tenant's own real hotel_name data
("Ahenfie Demo Hotel"), not leftover code.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
