Preparation for merging the ~37k species records that are synonyms of an
accepted taxon: once such a record is deleted, its slug must keep
resolving for clients that stored it.
- synonyms.slug (indexed), derived from the name like a species slug;
backfill via Migrators::SynonymSlugsWorker (replayable).
- Species.friendly_or_synonym! falls back on the Species synonymy when a
slug no longer matches a live record, and the read endpoints
(species#show, species#facts, plants#show, explore) use it. Numeric
ids of deleted records still 404.