User:Legoktm/Spam filter redo

Currently most anti-spam and related checks are in EditPage, or directly tied to it. This should be split out into a pluggable system that is significantly more flexible and requires less upon global state.

Existing checks

edit
  • SimpleAntiSpam - adds a form field with message, checks its value, reports an error message, and rejects the edit
  • Check summary spam regex, checks edit summary against regexes, reports an error message, and rejects the edit
  • Check spam regex against the current textbox (not merged), reports an error message, and rejects the edit
  • EditFilter hook: provides EditPage, not merged textbox, section URL parameter (new or a number), edit summary, and error to output
    • TitleBlacklist uses it, but that usage is actually wrong and it should be using EditFilterMergedContent
    • SpamBlacklist too, and it is also using it wrongly
  • Check whether user is blocked, and if so, spread the autoblock