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)