Problem: gitsigns blame popups show flat `GitSignsAddPreview`/
`GitSignsDeletePreview` highlights with no treesitter syntax or
character-level intra-line diffs.
Solution: add `lua/diffs/gitsigns.lua` which patches `Popup.create`
and `Popup.update` to intercept blame popups, parse hunk sections,
clear gitsigns' own highlights, and apply `highlight_hunk` with
manual `@diff.plus`/`@diff.minus` prefix extmarks. Wired in
`plugin/diffs.lua` with `User GitAttach` lazy-load retry.