Agent: fowler
Eliminate code-path aliasing and near-duplicates across recent commits:
1. Deduplicate find_json_object_end: Three near-identical copies in
streaming_parser.rs, context_window.rs, and acd.rs consolidated into
a single canonical implementation in utils.rs. All callers now route
through the canonical version. The utils.rs version uses the most
defensive variant (with found_start guard). (-84 lines)
2. Deduplicate provider constructors: AnthropicProvider::new() and
GeminiProvider::new() now delegate to their respective new_with_name()
methods instead of duplicating the full constructor body.
(OpenAI already delegated.) (-28 lines)
3. Inline convert_cache_control: Removed identity function that just
cloned CacheControl. Call sites now use .map(|cc| cc.clone())
directly. (-4 lines)
Net: -65 lines, 0 behavior changes, all 683 library tests pass.