API: Overhaul token handling


API: Overhaul token handling

The current token handling is a mess. This simplifies things greatly:

  • *All* tokens are obtained from action=query&meta=tokens, rather than being spread over action=tokens, action=query&prop=info, action=query&prop=revisions, action=query&prop=recentchanges, and action=query&prop=users. All these old methods are deprecated.
  • Similarly, there is only one hook to register new token types. All old hooks are deprecated.
  • All tokens are cacheable.
  • Most token types are dropped in favor of a 'csrf' token. They already were returning the same token anyway.
  • All token-using modules will document the required token type in a standard manner in action=help and are documented in machine-readable fashion in action=paraminfo.

Note this will require updates to all extensions using tokens.

Change-Id: I2793a3f2dd64a4bebb0b4d065e09af1e9f63fb89