Factor out checking for length differences

Make a new function large_spread that checks whether the difference
between the shortest and the longest in a list of recording lengths is
at least 15 seconds, so that this logic can be used for release merges
as well as for independent recording merges.
MBS-7417: Mark recording length mismatch in release merge

When displaying a release merge with recording merges, highlight the
lengths for those recording merges where there is at least 15 seconds
difference between the shortest and the longest recording.
mbs-7426: removing extra N
MBS-7428: beta: error when adding new releases with DiscID
MBS-7429: table-qualify the edit search ID predicate with BETWEEN, like with other predicates and operators
MBS-7431: URL encoding problem with inline URL editing
MBS-7420: Can't submit artist edit form after adding and removing a URL

After a link is removed, the events it registered on the form still
exist. Now they're unregistered beforehand.
mbs-7425: add maniadb to the whitelist
MBS-7315: Removing URL entity via Edit Release page results in SQL error

In lib/MusicBrainz/Server/Controller/WS/js/Edit.pm we now check whether
a relationship exists before submitting an edit to add it, and throw a
NoChanges exception if it does. I made sure this fixes the ISE by
removing an existing URL and then adding it back in the same session.
It only submits/shows a preview for the remove edit.

On the client we also now check if an added URL is a duplicate of an
existing URL that was removed. If it is, show an error saying the
relationship already exists.
MBS-7297: Internal server error when searching for edits by ID with large numbers
MBS-7432: beta: Internal server error displaying user tags page
Merge branch 'mbs-7429-ambiguous-id-field' into beta

* mbs-7429-ambiguous-id-field:
  MBS-7429: table-qualify the edit search ID predicate with BETWEEN, like with other predicates and operators
Merge remote-tracking branch 'reosarevok/mbs-7425' into beta

* reosarevok/mbs-7425:
  mbs-7425: add maniadb to the whitelist
Merge remote-tracking branch 'reosarevok/mbs-7426' into beta

* reosarevok/mbs-7426:
  mbs-7426: removing extra N
Merge remote-tracking branch 'bitmap/mbs-7432' into beta

* bitmap/mbs-7432:
  MBS-7432: beta: Internal server error displaying user tags page
Merge remote-tracking branch 'bitmap/mbs-7297' into beta

* bitmap/mbs-7297:
  MBS-7297: Internal server error when searching for edits by ID with large numbers
Merge remote-tracking branch 'bitmap/mbs-7315' into beta

* bitmap/mbs-7315:
  MBS-7315: Removing URL entity via Edit Release page results in SQL error
Merge remote-tracking branch 'bitmap/mbs-7428' into beta

* bitmap/mbs-7428:
  MBS-7428: beta: error when adding new releases with DiscID
Merge remote-tracking branch 'bitmap/mbs-7420' into beta

* bitmap/mbs-7420:
  MBS-7420: Can't submit artist edit form after adding and removing a URL
Merge remote-tracking branch 'bitmap/mbs-7431' into beta

* bitmap/mbs-7431:
  MBS-7431: URL encoding problem with inline URL editing