Customer Merge API (B3) — Mobile + Email deduplication

Files added:
- Controllers/CustomerMergeController.php
- api/customers/merge.php
- sql/migrations/20251210_create_sd_customer_merge_logs.sql

Usage:
1) Run migration to create audit table:
   mysql -u user -p your_db < sql/migrations/20251210_create_sd_customer_merge_logs.sql

2) Manual merge (example):
   POST https://yourserver/api/customers/merge.php
   Headers: Authorization: Bearer <token>
   Body (JSON):
   {
     "mode": "manual",
     "primary": 123,
     "duplicates": [456,789]
   }

3) Auto-merge (system chooses oldest record as primary):
   POST https://yourserver/api/customers/merge.php
   Headers: Authorization: Bearer <token>
   Body:
   { "mode": "auto" }

Permissions:
- Auto-merge is restricted to Admin/StateHead by default.
- Manual merge allowed for authenticated users; adjust `api/customers/merge.php` to restrict further.

Safety & Rollback:
- All merges run inside transactions.
- Audit details stored in sd_customer_merge_logs.meta (includes snapshots).
- To rollback a problematic merge, inspect the meta JSON and re-create rows and reassign related entities manually, or request me to generate an automated rollback script for specific log id(s).

Notes:
- The code updates sd_followups, sd_tasks, sd_messages to reassign customer references. If you have additional tables referencing sd_customers (e.g., sd_payments, sd_installations), add them to the `$related` array in CustomerMergeController->mergeIntoPrimary.
