bb7373ba163fccf578113a601e3e4fb5205bc230 fix(chain): don't panic on overlapping descriptors in release (志宇)
Pull request description:
### Description
Fixes #2277. Supersedes #2327.
Overlapping descriptors stay a caller contract violation. The docs now say so (debug builds panic), and `reveal_next_spk` returns `None` instead of panicking in release.
### Notes to the reviewers
The regression test is gated on `cfg(not(debug_assertions))`, so it only runs with `--release` (not in CI).
### Changelog notice
* Fixed: `KeychainTxOutIndex::reveal_next_spk` no longer panics in release builds on overlapping descriptors.
### Checklists
#### All Submissions:
* [x] I followed the [contribution guidelines](https://github.com/bitcoindevkit/bdk/blob/master/CONTRIBUTING.md)
#### Bugfixes:
* [ ] This pull request breaks the existing API
* [x] I've added tests to reproduce the issue which are now passing
* [x] I'm linking the issue being fixed by this PR
🤖 Generated with [Claude Code](https://claude.com/claude-code)
ACKs for top commit:
oleonardolima:
utACK
bb7373ba163fccf578113a601e3e4fb5205bc230
evanlinjin:
self-ACK
bb7373ba163fccf578113a601e3e4fb5205bc230
Tree-SHA512: 4f65e9ebbb35ec09528c6c29dda9e898939c75ce72033ca9335180d5d6160ab2877d5091379d85d08621a07e75d0da34e2e8162743e5c3c33654885a6dffef93