move some related code to Fields.js

There was no reason these functions needed to be re-created on each
Relationship instantiation, so moving them to Fields.js is more
efficient speed-wise.
add Controller::Role::RelationshipEditor

Removes code from Controller::Edit::Relationship to share with
Controller::Release.
make entities share rendering functions
add functions to prototypes in Fields.js
move rel editor to Controller::RelationshipEditor
reset changeCount in Relationship.reset
don't check whether $c->stash->{inc} is blessed
s/Relate recording to work/Add related work
make the multiselect placeholder text more informative
Fix dialog width bug
move date validator to MB.utility
MBS-5082: Set statement_timeout for web site to MAX_REQUEST_TIME (if set)

This will continue to enforce the guarantee that statements do not continue
running when the website has already timed out and the request has terminated.
Add 0.5 ms in format track length functions to make sure they're rounding correctly.
Merge branch 'master' into mbs-4382

* master:
  Fix setting edits_pending to relationships since counters were temporarily disabled
  cron: Add /usr/local/bin to $PATH
  Correctly abort database queries on server process timeout
  Reintroduce edits_pending counters, but leave the removal of l_*_* locks
Merge branch 'master' into mbs-3957

* master: (110 commits)
  Fix setting edits_pending to relationships since counters were temporarily disabled
  cron: Add /usr/local/bin to $PATH
  Correctly abort database queries on server process timeout
  Reintroduce edits_pending counters, but leave the removal of l_*_* locks
  Remove calls to adjust the edits_pending, editor statistic columns and lock relationship tables
  Revert "Merge branch 'cancel-dbh-timeout'"
  Fix fabric deployment with carton.lock
  When a request times out, call ->cancel
  MBh-259: Fix spelling of 'statistics'
  MBH-259: Add a Nagios check to ensure that statistics have been collected
  Remove stats/reports from beta cron now that it has shipped to production servers
  .gitignore compiled python files (e.g. fabfile.pyc).
  Disable captcha when running tests, do not request register.js in the User::Register test.
  fabric: Use the term 'beta' again, as it matches our servers
  fabric: Add a force-push to the reset_test strategy
  fabric: Updating to reflect new branching policy
  Don't abuse <abbr> tag
  Add another editor to the collections fixture so tests pass
  MBS-4492, correctly spell "defined" in ssssss.psgi.
  Meh, whitespace
  ...
MBS-3957: Check for a differences track durations

Check differences in track duration changes, rather than a difference between
track and recording duration. This means that even if a track has a duration
but a recording does not, as long as the track duration has not changed from
what was already in the database the editor will not have to confirm the
recording.

If an editor does change a track duration by >10s then they will have to
confirm the recording association.
MBS-2437: Add support for [artist:<mbid>] links in annotations

Using [artist:<mbid>] in annotations now expands to an absolute URI to the
MusicBrainz entity referenced.
MBS-2345: Skip the 'release duplicates' page when seeding with tracks

If the release editor is seeded with track data, the 'release duplicates' page
will be skipped, because this could risk discarding information that was part of
the initial seeding request. If a tracklist is not provided when seeding, then
the release duplicates page will still be presented.
MBS-1348: wrap 5-row blocks for set track lengths edits
add event.preventDefault() to the checking code when it's for submit