Publication cleanup

Deletes a test publication matched by publications.publication_id (the 17-char business id, e.g. 20260819-0102-001), by its uuid or by case_number, together with everything hanging off it: translations, entities, subjects (+ their files), files, history, search index, favourites, bids, submits (+ their files and history), newsletter mail jobs and the files rows that become unreferenced (uploads on disk are kept). The row is removed from both publications and publications_archive. Given criteria are ANDed; case_number is not unique, so it can match — and delete — several publications at once. Always dry-run first.