Problem: integration keys (`fugitive`, `neogit`, `gitsigns`, `committia`,
`telescope`) live at the top level of `vim.g.diffs`, cluttering the
config alongside unrelated options like `highlights` and `conflict`.
Solution: move them under `vim.g.diffs.integrations.*`. Old top-level
keys are migrated automatically with a `vim.deprecate` warning targeting
v0.3.2. `compute_filetypes` and `plugin/diffs.lua` fall back to legacy
keys for pre-`init()` callers.
## Problem
Regressions #119 and #120 showed the test suite had no coverage of the
decoration provider cache pipeline, no end-to-end pipeline tests from
buffer content to extmarks, and no Neogit-specific integration tests.
## Solution
Adds three new spec files (28 new tests, 316 total):
- `spec/decoration_provider_spec.lua` — indirect cache pipeline tests
via `_test` table: `ensure_cache` population, content fingerprint guard,
`pending_clear` semantics, BufWipeout cleanup
- `spec/integration_spec.lua` — full pipeline: diff buffer → `attach` →
extmarks; verifies `DiffsAdd`/`DiffsDelete` on correct lines, treesitter
captures, multi-hunk coverage
- `spec/neogit_integration_spec.lua` — `neogit_disable_hunk_highlight`
behavior, NeogitStatus/NeogitDiffView attach and cache population,
parser neogit filename patterns
Depends on #133.
Closes#122