Add pre-hook framework for modifying inputs before LLM calls
Extends the hook system to support pre-processing hooks that can modify
inputs (prompt, transcript, system_instruction, etc.) before the LLM call,
complementing the existing post-processing hooks.
- Add PreHookContext TypedDict and load_pre_hook/run_pre_hook functions
- Refactor hook loading to extract _resolve_hook_path and _load_hook_function
- Refactor context building to extract _build_base_context helper
- Update _property_tags to display new dict format as "hook:pre=x,post=y"
- Update docs and tests for new {"hook": {"pre": "x", "post": "y"}} format
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>