FEATURE: Add new :topic_tags_changed DiscourseEvent (PR #12530)

This is called in DiscourseTagging.tag_topic_by_names only after all the validations etc. have been passed, and after topic.tags = X has been called (because this is when the associations are created/ destroyed). The event has the topic, then a second param with the old and new tag names in arrays for easy inspection.

GitHub