Support environment variable interpolation in config files
Runs os.ExpandEnv on the raw YAML before unmarshaling, so secrets can
come from environment variables (e.g. ${WEBHOOK_SECRET}) rather than
being hardcoded. Handy for k8s where the config lives in a ConfigMap
but secrets come from Secret objects mapped to env vars.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>