Select coordinates using a map
Merge remote branch 'origin/master' into map-editing
MBS-7888: Keep forms on relationship editor page separate

Submitting any form from a relationship editor page started submission
preparation, even when it actually was a different form (search menu
in the page header). Limit this behaviour to the main edit form.

Also, the release relationship editor does this differently, and the
prepareSubmission function shouldn't ever be run for it.
MBS-7693: Open "edit release group" link in a new tab
Update wording for mediums with sequence issues report
MBS-7831: Order "Votes by (editor)" list by time of vote

When displaying the edits an editor has voted on recently
(/user/:name/votes), order them by time of vote instead of by edit ID,
so that the most recent action by this editor is shown first.
Fix index update script

The 20140919-edit-search-indexes-1.sql script had a syntax error in
the command renaming edit_idx_vote_time to vote_idx_vote_time.
Fix tests for Perl 5.20

Perl 5.20 includes the List::Util module in version 1.38 (as opposed
to version 1.27 in Perl 5.18), which in version 1.33 acquired a new
"all" function. Test::Deep by default re-exports this function if it
is available. Because many of our test modules have a test named
"all", a name clash occurs if they also import Test::Deep flatly.

This changes all uses of Test::Deep to only import the functions that
are actually needed, avoiding the clash.
Reorganize the string cleanup functions

The existing "trim" function for cleaning up a string is not
suitable for join phrases in artist credits because it also removes
any leading or trailing whitespace. Code that dealt with join phrases
therefore did its own cleanup which sometimes was equivalent to what
"trim" did and sometimes not.

This adds a "sanitize" function that does everything "trim" did,
except for removing leading and trailing whitespace, and implements
"trim" in terms of "sanitize" to ensure consistent behaviour. It also
uses "sanitize" where applicable.
Use "limit=max" for MediaWiki API requests

While it's unlikely that the default limit will change,
using "max" will automatically get the highest amount
allowed by your user's permissions.

If it was ever lowered, this will prevent a warning
from being triggered.
Use existing editor data in place tests
Don't require a disc ID in /ws/2/discid/ when a TOC is provided (MBS-3725)
Add alt tags to images which are missing them
Remove unused search template
MBS-7915: Show tracklist on "Set track durations" page

Due to wrong template parameters, the tracklist for the affected
medium was not displayed on the "Set track durations" page.
MBS-7916: Fix "Set track durations" preview

The preview of the length changes on the "Set track durations" (from
CD TOC) page were broken for mediums having only a single track: If
the track had a length, it was still shown as having unknown length
("?:??"), and more tracks than the one existing appeared in the
comparison, with unknown lengths both for the medium and the TOC.

Both issues were caused by Template Toolkit interpreting the
single-element array of tracks returned by "all_tracks" as a scalar.
Consequently, the "size" virtual method operated on the track object
(a blessed hash) and reported the number of key-value pairs in the
hash, and trying to access the first element of the (non-)array
failed, returning an undefined value for the track length.
Get rid of an unncessary list

The cdtoc/set_durations template used a single-element <ul> list for
the affected release. This is an unnecessary relic from when mediums
(tracklists) could be attached to multiple releases.

Also, use descriptive_link instead of reimplementing it.
Fix an "uninitialized value" warning
Merge remote-tracking branch 'nikki-bitbucket/map-editing' into beta

* nikki-bitbucket/map-editing:
  Select coordinates using a map
Merge remote-tracking branch 'nikki-bitbucket/templates-alt-tags' into beta

* nikki-bitbucket/templates-alt-tags:
  Add alt tags to images which are missing them