Extension:MassMessage/Technical debt cleanup
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)