User:Adamw/old/RFC - Campaigns entities

These improvements to Extension:Campaigns will persist information about campaigns, and provide an API.

Considerations

 * Not sure if we want to have campaign "owners".
 * How to deal with fuzz spam?
 * Do we want any kind of namespacing done on campaigns? Seems wise.  This could be done in a semi-transparent way by forming a campaign name like "/ " during campaign creation.

Campaign member table
This table should be designed more carefully so we are future-compatible with obvious, new Campaigns use cases.

Campaign owners
There is currently only one class of campaign owner, and these users are allowed to view all information and make any changes to a campaign.

Interaction with Wikimetrics
Wikimetrics will pull cohorts via an API that we'll create, to let users access them from Wikimetrics.

Wikimetrics will need to be extended to support this new usage.

Future enhancements
Things which need to happen, but are not covered by this RFC:
 * Admin UI: create campaigns, edit properties, assign owners. Allow the community to create social campaigns.
 * Campaign link generation
 * Campaigns for things other than new account creation (e.g. fundraising, editathons)