jquery.tablesorter: Reset unaffected columns' sort counts when sorting

The column sort count (which is used to determine the sort order when
clicking a table header cell) was not reset on table columns unaffected
by the sorting. Sorting a column in ascending order, then sorting another
column and finally sorting the first column again would cause that column
to be sorted in descending order although it should be ordered in the
default (ascending) order again (see test added).

Change-Id: I3dd49bab07f9a02d9e1d531f1397396025fe77e0
Display "Printable version" links in toolbox on special pages

Bug: 48234
Change-Id: Ib8864127621c5aaca1df22083a774f352984c7d3
Hide exceptions in MediaWiki::doJobs() as deferred updates do.

Change-Id: Ia83029d4c06bf3f2be6ad0797e815464e44fd088
Make 'subnet' feature of $wgRateLimits work with IPv6

- 'subnet' will aggregate limits for a /64 subnet on IPv6
- Updated DefaultSettings.php to mention this
- Only call WebRequest::getIP() when it will really be used

Change-Id: Ia96800df5fb498a79e2c0527baee2392cd4623c7
Add fa to collation list.

Based on http://collation-charts.org/icu442/icu442-fa.html
Should be verified by a native speaker.

Bug: 30287
Change-Id: I3c30824f7d133cf615ec7c2c39d31f27c39f89fe
Fix undo edit summary when the user who made the old revision is hidden

Bug: 48571
Change-Id: I01b034b25032dbbfb67c7f578b501bda746d5335
On submitted revdel form, prefill selected reason dropdown

When you submit a revdel form, the 'other/additional' reason will be in the
returned form. However, the common reason dropdown always defaults to 'none'.
This commit makes it use the previous common reason option.

Bug: 48508
Change-Id: I5b16aef33bdbabbc9608faac7f090f8dadcf79d4
Made SwiftFileBackend::loadObjectListing() populate stat entries in reverse order.

Change-Id: I07bf9c852729d65cee72364ca3249e31936d0562
doc: various updates

[includes/cache/MessageCache.php]
- internal constants
- constructor
- a few missing @var

[includes/clientpool/RedisConnectionPool.php]
- group internal settings applying to the pool
- misc protected members updates

[includes/debug/Debug.php]
- missing parameter name in @var statements

Change-Id: I6ff0a68d659529d128f40f32b0fd1c1d39af952f
tests: group structures tests in their own directory

The phpunit root directory has two test file:

 AutoLoaderTest.php
 StructureTest.php

The later was registered in phpunit under the `structure` test suite
while the former was not registered and hence never run (bug 47750).

This patch moves both files under the `structure` subdirectory and
change the suite to look in that directory.  That will avoid us having
to manually maintain a list of test files.

Updated the __DIR__ in StructureTest.php.

Change-Id: I419c9157f32bdf7e1ff26a42f4bb3f3922b7be37
Update referenced PHP version in 'normal' README.

Change-Id: I5cbe65b4508e183a52f904c561dbd9c7aa03c64f
Allow server selection when running sql.php

Change-Id: I2a643eb3a517eba09b80da19158e0957441bcaa5
Compress PNGs used in new forms

I used `pngcrush -rem allb -brute -reduce`
The arrow* icons in this directory use 4-bit colormap and are even smaller.
pngcrush won't convert from 8-bit RGBA. Reedy or MaxSem might know how.

Change-Id: I5db98b1768aa14d392704f65ef647043ce96dd9a
Don't reinvent the wheel in SpecialRecentchangeslinked::getExtraOptions

Just call parent::getExtraOptions() first and then simply add the one
additional field. The 'SpecialRecentChangesPanel' hook wasn't called
from SpecialRecentchangeslinked previously, I've wrapped the call in
an if to keep the behavior the same.

Changes this causes:
* If $wgAllowCategorizedRecentChanges is true, Recentchangeslinked
  will include the category filter form as well.
* The target filter on Recentchangeslinked will be displayed at the
  end of the form, below the tag filter.

Change-Id: I4436a63356adb1e0b0daa1aa52c179974a036fa1
Add TitleQuickPermissions hook to Title::checkQuickPermissions

Currently Title permissions hooks get called after
Title::checkQuickPermissions, preventing users from
overriding quick permission checks. Added a hook to
allow this. Needed for bug 45898.

Change-Id: Id672270741282778815b06eff8b234ca4d819744
RecentChange: deprecate newFromCurRow and loadFromCurRow

This is ancient code related to the no-longer existing cur table,
which doesn't seem to be fully correct anymore and is only called
from the (deprecated) Oversight extension.

Change-Id: I0b40e3fb17ec670c5c85c8ee0dd2e8b74d72e548
Newlines should be converted to spaces for IRC feed

Instead of just removing them, which was causing reasons to show up like this:
"Automatically blocked by abuse filter.Description of matched rule: Long-term Chinese spambots"
While showing like this on the web pages:
"Automatically blocked by abuse filter. Description of matched rule: Long-term Chinese spambots"

Change-Id: I058e4b446aaa42b4dfe3369f101191f36b6f6978
Customise linktrail for Gujarati (gu)

Release notes will follow with another commit when this is merged.

Bug: 48798
Change-Id: I872a9f141f64a664bc3743fcff5f036634445ba0
benefits icon part of background, not float

The separate icon floating left made the benefit text not request a
width, so the benefits column width was determined by the h2 "made by
people like you" heading and a short h2 could clip big numbers.

Now the icon is part of the background for the text div, and the column
width is the larger of h2 heading and benefits.

Bug: 48909
Change-Id: Iaf5fb1ccb4f50d34cad8a29b2bdd8f5b267ef008
Merge 'passwordreset-pretext' and 'passwordreset-text' messages

It is confusing to have in the same two messages which can be interpreted
with different meanings. When there is more than one way of resetting a
password, two messages are being show to the user:
- 'passwordreset-pretext' saying to fill only one of the fields below
- 'passwordreset-text' saying to *complete* the form, which people
  can interpret as "fill all the fields below"

This already got changed at the English Wikipedia, see
https://en.wikipedia.org/wiki/Wikipedia:MediaWiki_messages/Archive_5#Special:PasswordReset_improvements
I think it's worth changing MediaWiki too.

Change-Id: Ia2f0c889959d11396411ba44ae595ffad5d498d2