Lumiere v2.5.2 - GHL Appointment Backfill

1. Upload/replace the existing Lumiere files. Do not delete the database.
2. Run /lumiere/import/install_schema.php once. Expected: Schema ready.
3. Run /lumiere/import/import_ghl_appointments.php in a browser.
   - Historical backfill is processed in six-month slices.
   - Each slice uses 30-day GHL requests and automatically splits a request if GHL times out.
   - The browser automatically advances to the next slice until complete.
   - Appointment IDs are UPSERTed, so reruns do not create duplicates.
4. When complete, open /lumiere/dashboard/
5. Ongoing update/cron URL: /lumiere/import/import_ghl_appointments.php?mode=recent
   This re-reads recent appointments so statuses such as showed/cancelled/no-show can update.

Compatibility: PHP 7.x / MySQL 5.7.
