SpecialPage: DRY array filter for prefixSearchSubpages()

Everytime this gets duplicated it isn't immediately obvious what
all the nested array_slice/preg_quote stuff does. Having it once
place removes the need to figure it out again or look at it as
new code (and ensures they're in sync and saves maintenance).

Change-Id: Iefe340729a55c9bb52a4931310966d0f33041205
SpecialJavaScriptTest: Implement prefixSearchSubpages()

Change-Id: I26ae06eb472e843197f7dc04b610e87d3cd9ed1e
Avoid key conflict errors in User::addToDatabase

* Also cleaned up the IDBAccessObject constants to cover more cases.

Bug: 66185
Change-Id: Ide28af552b3c59428923b373c0f5764414d50a1f
Avoid warnings for empty file sha1 keys

bug: 40362
Change-Id: I19d3b38a121171153875cde8bef4ca34b3e49d67
Avoid begin/commit in Category::getCountMessage()

Change-Id: I64e4a859a9adf2930265e282f59816c82e1c3070
Removed redundant begin/commit calls

* onTransactionIdle() callbacks already run in auto-commit mode.

Change-Id: I1eab5953080fe28fe58d7a75f88612c591db6e9a
Set noindex,nofollow on missing (404) pages

* This used to be done until a0e83700a678dd813bf5173bac7f30e67d48c706 by mistake

Change-Id: I77c96363e472c5cb87183ba7d6458241b76d8ed1
test: Remove MagicVariableTest#testServernameFromDifferentProtocols

This test was causing failures locally when wgServer != localhost
because {{SERVERNAME}} is derived from wgServerName, not wgServer
and the test is only mocking wgServer.

> MagicVariableTest::testServername.. with data set #2 ('//localhost/')
> Magic servername should be <localhost:string>
> Failed asserting that two strings are identical.
> --- Expected
> +++ Actual
> @@ @@
> -localhost
> +krinkle.dev

This value is no longer derived by the Parser, but is instead
set using wfParserUrl in Setup.php.

Remove this obsolete test and add any missing test cases for
wgParserUrl to its test suite.

Change-Id: I7d7d201cb46841e63dac8ab9fd81b45b252264a3
Remove ImageGalleryBase::useSkin() (deprecated since 1.18)

Change-Id: If1f92984bec36948a1149fffef765e7fa78cc26a
Remove DatabaseMysqlBase::getLagFromProcesslist() (deprecated 1.19)

Change-Id: I7dfdd943abf1c94a35e2401f92208c19683dc200
Remove LoadBalancer::closeConnecton (deprecated since 1.18)

Change-Id: Ic572ab2787623bb2b525ffa640e1232dcb1643fb
Deprecate wfCheckLimits(), nothing calls this anymore

Some old things in SVN called it, hence the deprecation.

Change-Id: Iefabd1a6bee261a393f3b1af083c8a075abf1e48
Merge "Deprecate wfCheckLimits(), nothing calls this anymore"
Merge "SpecialPage: DRY array filter for prefixSearchSubpages()"
Merge "test: Remove MagicVariableTest#testServernameFromDifferentProtocols"
Merge "Avoid key conflict errors in User::addToDatabase"
Merge "SpecialJavaScriptTest: Implement prefixSearchSubpages()"
Localisation updates from https://translatewiki.net.

Change-Id: I9395b0e1983122b12bedf003d6398da5ddfd5651
Resources: Enable es5-shim and json for mobile as well as desktop target

Change-Id: I1237909d7e058137d55e5de9fa4d64fe1f7f9472
Vector: Rename description message: vector-desc → vector-skin-desc

The former was also used by the old Vector extension and the
translations now conflict.

Intentionally didn't change qqq as it currently contains the docs for
the wrong message… I'll fix qqq on translatewiki.

Change-Id: Id7bde76b8f663e88672248f6881530ece54b67b1