feat: add template_vars to pre-hook contract
Pre-hooks can now return {"template_vars": {"key": "value"}} to inject
named variables into agent text fields (user_instruction, transcript,
prompt) via string.Template.safe_substitute(). Variables auto-expand
with capitalize convention matching load_prompt ( and ).
Template vars are applied after direct field modifications and before
dry-run event emission.