Handle legal-deletion of already-deleted posts
Followup to https://github.com/codidact/qpixel/pull/1870. Staff can use a special tool to delete a post for legal-compliance reasons. This has several effects beyond deleting the post: it replaces the body with a notice about deleted content, redacts the history, and auto-files and resolves a ticket for legal tracking purposes.
Normally a deleted post can't be "re-deleted"; those who can see deleted posts see a "restore" link where the "delete" link was. But legal-deletion follows a different path, so it is possible to legal-delete a post that is already deleted. We don't want to disable that, though, because a regular deleted post that contains objectionable content could still violate the OSA and would require the extra steps of legal-deletion. And we don't want staff to have to restore the post (broadening its visibility for at least a few seconds) in order to do it.
If a post is already legal-deleted, then either the option shouldn't be available, or the action should be a no-op. In particular, it should not generate a new ticket, and it shouldn't update the timestamp and attribution in the deletion notice on the post.
At the code level, we can't currently tell that a post is legal-deleted versus just deleted, which is why this isn't a simple fix. One approach would be to add a column to the posts table, either a boolean (is-legal-deleted) or the ID of the generated ticket (if we ever think we'd need to do updates to an existing ticket from the post). (If this were present, we would also be able to replace the default deleted-post notice that talks about restoration.) Maybe there are better ways.