Move code around
This series of commits mostly just shuffles code around into separate files. The main benefit is that things become more isolated/contained, as opposed to being all bundled up in 1 massive file that does it all. This makes it easier to re-use these pieces across different places (and there is no shortage of overlap)
In addition to simply moving code from one place to another, I've also did a couple of minor refactors to improve efficiency (e.g. how entity-id suggestions from various sources get combined in entity_images.py, or removing a redundant join for disallowed substrings) or maintainability (e.g. eliminating hardcoded list of wiktionaries)
And then a sprinkle of code cleanup (e.g. dealing with earlier CR feedback) and moving comments into docstring.
Nothing in here should alter any existing functionality - it all still does the same, in a slightly different way.