Requests for comment/Watch Categorylinks

Background
Currently there is no convenient way to watch when an article page is added to or removed from a specific category. It's only possible to watch changes to the content of the category page itself.

The request to implement this feature is known as bug 7148, which had 27 votes and is listed at Watchlist wishlist. While reaching out to the German Wikipedia community it was identified as one of the most desired features and was picked for the Top 20 Feature Wishlist.

During the RFC discussion it was agreed upon that the recentchanges table should be used instead of Echo. That implies a change of the implementation approach.

Proposal
When categorizing pages a newly defined RecentChange type ('mw.categorize') is being created. All presentations of recentchanges (e. g. Special:Watchlist) also take that into account and provide options to filter RC of that type.

To have categorization entries displayed on their watchlist or receive notifications on added or removed pages of a category, users add the category page to their watchlist. The feature may be enabled/disabled using the advanced options in the watchlist preferences.

The comment string of the recentchanges entry contains the watched category title as the subject and the title/link of the related page (e. g. "15:11 CATEGORY_TITLE (diff | hist) . . (+10)‎ . . Username (Talk | contribs | block) (Page PAGE_TITLE was removed from category)").

In order to prevent recentchanges from being flooded by high-usage template categorization, there won't be recentchanges entries for the pages embedding the template. The comment string will contain the number of affected pages. It is configurable in LocalSettings.php to bypass this behavior.

Implementation
Core needs to be changed to achieve the desired behaviour:


 * Introduce a new RecentChange type for categorization
 * Provide a method to add a categorization data set to recentchanges
 * Add categorization as a RecentChange during LinksUpdate::doIncrementalUpdate
 * Provide feature options in user preferences
 * Provide filters in all the rc/watchlist feeds
 * i18n for notifications and preferences