Make all the remove_unused_link() triggers deferred

I have some tests which use links and create/delete relationships. It's a pain
when the link gets deleted. We are really enforcing a constraint (that links are
referred to by at least one relationship), so it makes sense to move this to a
deferred constraint trigger.
Add a script to remove empty labels
Factor all clean up scripts into a common 'RemoveEmpty' script.

This script can be invoked with an entity type, and it will remove all entities
of that type. This reduces the duplication between the cleanup scripts. I've
moved all SQL logic to stored procedures, which has meant writing empty_works()
as this was previously done in Perl code.

Also added tests for empty_artists()
Fix failing tests now that the remove_unused_link triggers are deferred
Force consistent DBDefs webserver urls in Server::Test, to test links in email messages.
Add empty_release_groups() clean up to remove unused release groups
Fix empty_* tests check for last_updated
Regenerate SQL scripts
Regenerate DropFunctions.sql
Remove now EmptyLabels.pm as this is now part of RemoveEmpty
Decrease the whitespace on the voting page. (MBS-4070 PARTIAL)

 * Actually use the 'verbose' option to notes.tt reasonably
   (tl;dr, TT's DEFAULT was overwriting 0, since it was falsy)
 * Remove some stupid paddings and margins.
 * Have the label wrap around the radio buttons for votes, so
   it's easier to lazy-click them.
Merge remote branch 'ian/mbs-4893-vote-list-fixes'

* ian/mbs-4893-vote-list-fixes:
  Decrease the whitespace on the voting page. (MBS-4070 PARTIAL)
Add cron tasks to run RemoveEmpty
Merge branch 'mbs-2547'

* mbs-2547:
  Add cron tasks to run RemoveEmpty
  Remove now EmptyLabels.pm as this is now part of RemoveEmpty
  Regenerate SQL scripts
  Fix empty_* tests check for last_updated
  Add empty_release_groups() clean up to remove unused release groups
  Fix failing tests now that the remove_unused_link triggers are deferred
  Factor all clean up scripts into a common 'RemoveEmpty' script.
  Add a script to remove empty labels
  Make all the remove_unused_link() triggers deferred
Clean up cron jobs more

Carton now runs inside the cron jobs, but the cron jobs don't need to run as
Carton (and in fact, will not work if they are). Also silenced a few more
commands if they run successfully.
chmod admin/cron/beta.sh so it is executable
MBS-2547: Remove the 'empty release groups' report
Merge branch 'mbs-3803'

* mbs-3803:
  MBS-3803: Store the old barcode in edit barcode edits
Merge branch 'master' into next

* master:
  MBS-2547: Remove the 'empty release groups' report
  chmod admin/cron/beta.sh so it is executable
  Clean up cron jobs more
  Add cron tasks to run RemoveEmpty
  Decrease the whitespace on the voting page. (MBS-4070 PARTIAL)
  Remove now EmptyLabels.pm as this is now part of RemoveEmpty
  Regenerate DropFunctions.sql
  Regenerate SQL scripts
  Fix empty_* tests check for last_updated
  Add empty_release_groups() clean up to remove unused release groups
  Force consistent DBDefs webserver urls in Server::Test, to test links in email messages.
  Fix failing tests now that the remove_unused_link triggers are deferred
  Factor all clean up scripts into a common 'RemoveEmpty' script.
  Add a script to remove empty labels
  Make all the remove_unused_link() triggers deferred