Lumiere v2.3

Purpose:
1) Normalize the useful financial/clinical fields already present in oryx_procedures.raw_json.
2) Persistently match Oryx patients to GHL contacts using only exact normalized email and phone matches.
3) Verify how much procedure/opportunity data can now be linked for attribution.

Run in this order:
/import/install_schema.php
/import/normalize_oryx_procedures.php
/import/match_ghl_oryx_patients.php
/import/verify_attribution_links.php

Safety:
- Existing GHL/Oryx source rows are preserved.
- Procedure raw_json is preserved.
- Matching does not use fuzzy names.
- Ambiguous email/phone matches and conflicting email-vs-phone matches are skipped.
- No Oryx/GHL API writes are performed.
- Procedure total is NOT treated as cash collected.
