There are comments with no body

there can be comments which litterally do nothing, and also any comment
which only changes attributes (tags, status, assigned user) also have no
body. Since we don't really care about that when importing - skip them.
creator_name in a comment is the .. ticket creator

so remove that, it's just confusing
include the default ticket text in the config

it's used in the rudimentary spam-detection logic
keep usernames and store the ticket state

the ticket state is the string "open" or "closed"
rework the review shell

detect basic spam patterns automatically, consolidate some similar
chunks of code, and change the format for storing spammers/whitelist
information. Using just a users name would mean a spammer could simply
pick the name of a known user and be automatically whitelisted - not
good.
make link-common a public function

the accept shell needs it too, otherwise the project config file isn't
available in the accepteed ticket data
link the common files when running accept (tickets)

also use the current data for determining the status, preventing a
chicken an egg problem trying to determine the status of an unwritten
ticket
revised spam detection

filter out blatant spam so that the user doesn't need to. These spam
rules are likely not foolproof but their false-negative rate will be
practically zero.