[ty] Place variable type inlay hints after grouping parentheses (#29795)
Accepting the inferred `int` hint on `(value) = get_value()` produced
`(value: int) = get_value()`, which is invalid Python. Use
`parenthesized_range` to place the hint after the target’s outermost
closing parenthesis, so accepting it produces `(value): int =
get_value()`.
Stacked on #29794, which fixes hint placement for parenthesized call
arguments. Related to https://github.com/astral-sh/ty/issues/4855.
## Test plan
`test_assign_statement` now covers `((z)) = i(1)`. Without the fix,
accepting the hint produces `((z: int)) = i(1)`. The test helper
reparses the edited source and fails on that syntax error before
comparing snapshots, even when snapshot updates are enabled. With the
fix, the snapshot checks both the displayed hint (`((z))[: int] = i(1)`)
and the applied edit (`((z)): int = i(1)`).