Redo campaigns backend to use ContentHandler

Campaigns are now stored as JSON in pages in the Campaign: namespace,
rather than in the database. This lets us treat campaigns the same way
we treat pages - they have history, a talk page, can be deleted /
watchlisted / moved / protected, and can be accessed via the same API
as other pages. Also much easier to extend to add newer fields. As a
downside, no more GUI to create / edit campaigns - but talking to the
primary users of the Campaigns editing interface so far, that does not
seem to be something that is a blocker.

Breaks backwards compatibility with previous versions. Config settings
parameters have changed. Depends on Extension:EventLogging (temporary,
will be removed when JsonSchema + friends move to core). Also depends
on MediaWiki 1.22. Older, mostly unused APIs have been removed. Has a
maintenance script that migrates campaigns from the older, database
format into the newer page format.

(See GitHub link for detailed breakdown of commits to better understand
this huge patch)

GitHub: https://github.com/wikimedia/mediawiki-extensions-UploadWizard/pull/3
Change-Id: Ia77968d909a453b93a55bee4dc8fdc4e075904b9
Merge "Redo campaigns backend to use ContentHandler"