protect: support arbitrary namespaces at RPP

Previously, requests for protection of TimedText: or Module: pages, etc. failed.
Particularly for Lua modules, protection might need to be requested.
Now such requests should work.
Talk spaces aren't fully handled correctly, but requests for protection of these are rare.
morebits: remove |chars| parameters from string.trimX polyfills

These parameters are not supported by native implementations, so our replacement implementation shouldn't be offering them.
several modules: use new formatReasonText function

This fixes two problems that sometimes occur with these modules:
* Part of a deletion reason is lost due to the use of a pipe character
* Signatures are sometimes "preformatted" due to trailing newlines in a
deletion reason, etc.
In talkback, pipe replacement is not relevant, so a basic trim is
applied to the text.
talkback: bug fix with optout message

This is what comes of testing only in my own userspace...
several modules: avoid overwriting the wgPageName variable

We shouldn't be fiddling with mw.config values.
After this change, use mw.config.get("wgPageName") for page name with underscores, and Morebits.pageNameNorm for page name with spaces.
use .utc() for timestamps and format them the sme way as the wiki does
Merge remote-tracking branch 'azatoth/master'

Conflicts:
	modules/friendlytag.js
	modules/friendlytalkback.js
	modules/friendlywelcome.js
	modules/twinklearv.js
	modules/twinkleconfig.js
	modules/twinklefluff.js
	modules/twinkleprotect.js
	modules/twinklespeedy.js
	modules/twinklewarn.js
	sync.pl
	twinkle.header.js