Extension:MassMessage/Technical debt cleanup

From mediawiki.org

MassMessage is 4+ years old now, and technical debt has accumulated that needs to be cleaned up.

  • Put the extension into a PHP namespace (MediaWiki\MassMessage)
  • Have "targets" use a value object instead of passing arrays around
  • Turn MassMessageTargets::getTargets() into an abstract MassMessage\SpamlistLookup or something, and have individual classes extend it
  • Break down the giant MassMessage class into smaller ones that have less responsibility
  • Allow using Wikidata items as spam lists phab:T171617
  • Add missing filter name messages phab:T169824 (microtask)
  • Fix invalid argument supplied for foreach phab:T162734 (microtask)
  • Warn when <ref> tag is present but no <references> tag is present phab:T156167
  • (there's probably more bugs that could be addressed, but I think this is a good scope for now)