[ty] Contextualize boolean operands (#25070)
## Summary
This adds bidirectional inference for boolean expression operands.
Previously, a call context did not reach either side of an `and` or `or`
expression, so we inferred fallback literals too narrowly:
```py
expects_content(content or [TextContent()])
```
Now boolean-expression inference passes the outer type context into each
operand, as we do for `if` expressions, binary expressions, etc.
Co-authored-by: Codex <noreply@openai.com>