## Motivation
Implements [DEV-10573](https://linear.app/whalesync/issue/DEV-10573/trial-subscription-email-reminders-3-day-and-post-expiry-downgrade): keep users on the 14-day Pro trial informed as it winds down and after it ends, so the downgrade to Free isn't a surprise and there's a clear path to convert.
## Change description
- Sends two transactional emails off existing Stripe webhooks: a "~3 days remaining" reminder on `customer.subscription.trial_will_end`, and a post-expiry "trial ended, downgraded to Free" notice on the `trialing -> canceled` transition detected in `upsertSubscription`.
- Sends are idempotent and multi-instance-safe via two new nullable `Subscription` columns (`trialEndingReminderSentAt` / `trialExpiredReminderSentAt`) claimed atomically (`updateMany ... where flag IS NULL`, act only when `count === 1`), so a duplicate webhook or retry never re-sends.
- Gated behind a new `TRIAL_REMINDER_EMAILS` system feature flag (default off, fail-closed) for dark-launch; adds two SendGrid templates + senders, two PostHog events, and audit-log entries, and wires `EmailModule` + `ExperimentsModule` into `PaymentModule`. Covered by new unit tests in `stripe-payment.service.spec.ts`.
### Before enabling in prod
- Apply the included migration, mirror the `TRIAL_REMINDER_EMAILS` flag into the Prod PostHog project, and register `customer.subscription.trial_will_end` on the prod Stripe webhook endpoint.
## Checklists
- [ ] Security impact of change has been considered
- Data Incident Risk:
- [ ] None
- [ ] Low
- [ ] High