Quand les métadonnées externes sont récupérées avant que les livres
n'existent localement, le book_id reste NULL et les livres apparaissent
comme "manquants" alors qu'ils sont présents.
- Ajoute rematch_unlinked_books() qui associe les external_book_metadata
non liées aux livres locaux par correspondance de volume
- Appelé automatiquement à la fin de refresh_link() (API)
- Appelé après chaque scan terminé dans l'indexer (job.rs)
- Testé sur Dragon Ball : 47/85 external books rematched, 43 restants
correspondent aux tomes Dragon Ball Z non présents localement
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>