Fix needle tests for parsers using literal_tag for parameter names
**Problem:**
Needle tests were using needle markers (e.g., $N1AK$_0$N2AK$_0) as
parameter keys, but parsers that use p.literal_tag(Tag::TOOL_ARG_NAME, it.key())
expect exact parameter names from the schema (e.g., "code").
**Solution:**
- Generate dynamic tool schemas where parameter names ARE the needle markers
- This allows the parser's literal_tag matching to work correctly
- Update Llama 3.1 template info to set tools_emit_content_with_calls=false
(builtin tools don't support mixing content with tool calls)
**Results:**
- Llama 3.1: 4/5 passing (was 2/5)
- Overall: 10/20 templates fully passing
Note: Llama 3.1 parallel-tool-calls fails because template explicitly
raises "This model only supports single tool-calls at once!"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>