Update DataValues, fix handling of precision and non-earth coordinates

Change-Id: I214bb354660098b776bc7d18414f22d611f16942
Update Wikibase, fix issue with property parser function

Change-Id: Id13fb475f7eda81ff85cf7473e430eafbba48979
Make it slightly easier for extensions to hook into page protection.

Split parts of doUpdateRestrictions() into several more concise functions.
The biggest drawback is increasing $dbw->encodeExpiry() calls times 3. This is
not much of a problem given that's a very inexpensive function and it is only
called very few times ($limit holds 2 values in current codebase)

Added $reason to the ProtectionForm::save hook, so that other code hooking into
and adding their own settings into page protection form can also process the
reason for the protection change.

Change-Id: I879290ed83e4e47e9561d4c352fbd50c07d7e18a