Add CLI subprocess runner infrastructure for provider tool agents
Phase 1 of replacing SDK-based run_tools with CLI subprocess wrappers
(claude, codex, gemini). Adds shared infrastructure:
- think/providers/cli.py: CLIRunner (async subprocess with JSONL
translation), ThinkingAggregator (buffers text between tool calls),
assemble_prompt (combines config into stdin-pipeable prompt),
lookup_cli_session_id (enables resume via provider session IDs)
- Extends all Event TypedDicts with optional `raw` field to preserve
original provider JSON events
- Adds cli_session_id and usage fields to FinishEvent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>