Factor out various AddAlias edit classes into a role
Factor out various AddAnnotation edit classes into a role
MBS-7437: Fix removing an area in place edits

The form for place edits did not have all required infrastructure for
the area autocomplete field; in particular, the gid value was not set
when the form loaded. When the user cleared the text field in order to
remove the area, the hidden gid field was set to the empty string
accordingly, and it was expected that the relevant change event would
fire; which did not happen, because the field had been empty to begin
with. The area_id field therefore retained its value, meaning that the
removal was ignored when the form was submitted.
MBS-7444: Release editor seeding should ignore medium position field

Revert to the previous release editor's behavior of resetting all the
medium positions.
MBS-7445: Not all mediums gets reordered when you delete one
MBS-7439: Internal server error when seeding badly formatted dates to the release editor
Use [0-9] instead of \d because \d does not mean [0-9]
Don't set the schema before it's created for checking plperlu support.
MBS-7400: Add artist merges to relevant edit histories

A "merge artists" edit can optionally change all artist credits of the
entities being merged to use the name of the merge target. In this
case, it affects recordings, releases, and release groups that use
these artist credits and should therefore appear in their edit
histories.
MBS-7448: Allow looking up URLs

Make it possible to look up a URL entity by specifying the actual URL,
from the "other lookups" page.
MBS-7412: Reorder medium edits are created after adding new disc from dialog
MBS-7450: Show coordinates for equatorial places

Places with at least one zero-valued coordinate had their coordinates
not displayed because the template checked for latitude and longitude
being true instead of the coordinates being defined. Similarly, the
"add place" edit class evaluated the latitude and would have stopped
showing coordinates on the equator as soon as MBS-7438 is fixed. (It
worked because "0.000000", unlike "0", evaluates to true.)
MBS-7438: Store coordinates without trailing zeroes

Place coordinate values entered by the users were normalized to six
digits after the decimal point, even when that led to trailing zeroes.
Values from the database, on the other hand, did not have trailing
zeroes. Owing to this, coordinates were incorrectly considered changed
when editing certain places, and empty edits created.

To fix this, trailing zeroes that remain in user-entered coordinates
after rounding to six digits after the decimal point are removed.
Swap two variable names so they reflect their purpose

A small anonymous helper function that takes a limit and an offset as
parameters put the limit into $offset and the offset into $limit. This
was harmless, but confusing to read.
MBS-7453: Internal server error in the release editor (new row for relation "release_group" violates check constraint "control_for_whitespace")
Add test for MBS-7453
Add test for MBS-7438
MBS-7455: Fix DeleteReleaseLabel ISE for /release/add previews

This occurs because after release.labels.original() is modified,
previews for label edits are regenerated. Since by then the release is
added but we don't have any ids for the new release labels, it sees
things as remove edits and generates previews accordingly.

One half-solution would be to simply stop previews while the release is
submitting, which is probably a good idea anyway, but doesn't help if
one of the submissions fails. So I changed /ws/js/edit to return the
release label ids that were created, and merge them in on the client
before resetting the original data.

This might possibly also fix weird issues where label edits were
submitted twice.
Remove outdated code from the "edit URL" edit class

The "edit URL" edit class had some old code from the time when URL
entities still had descriptions. As it is no longer necessary, this
commit removes it.
MBS-5552: Mark edits that merge URL entities

An "edit URL" edit that changes the URL to one that already exists in
the database is actually a merge, which may be hard to revert if wrong
and therefore deserves extra scrutiny.

Two new fields are added to the edit data: the number of relationships
using this URL entity, and whether the edit is a merge. This
information is then presented in the edit view unless it is the
standard case (one relationship, no merge).