Make necessary changes to generate new domains' .pot files.

 * Split extract_pot into _db and _templates versions
 * Allow configuring within extract_pot_db which tables
   go to which domains.
 * Allow configuring WHERE clauses, contexts, and automatic
   po comments in extract_pot_db.
 * Change .po format to support different domains
 * Add new .pot files
 * Install new .po format to correct places
 * Purge old useless translations
 * Add alias types to extract_pot_db, previously missing
 * Add timeline events to extract_pot_db, previously missing
 * Add 'pot' target to Makefile to make all the .pot files
Add other translation domains, and rewire infrastructure.

 * Purge Locale::TextDomain, because there is too much magic
   Use, instead, lower-level Locale::Messages calls
 * Add pgettext (gettext with context, p for 'particular')
 * Move _expand to be a method rather than a function
   (so it can be called by subclasses more effectively)
 * Add new modules for the other translation domains.
 * Make sure languages are built from headers for all domains
Modify various Entities to account for domains.

 * Add l_<whatever> functions for translatable
   attributes.
 * Use these l_ functions where applicable
   in other entities.
 * Add root_id to the column_mapping in
   Data::LinkAttributeType so that it actually
   always picks it up
Add or update translations in various places.

 * Add translation for timeline events
   in Data::Statistics. (MBS-4259)
 * Use new entity l_ functions in templates.
 * Migrate l() TT macro to use a TT plugin with
   configurable domain.
 * Use aforementioned plugin to translate statistics
   templates using the proper domain.
Changes based on ocharles' comments (part 1)

 * Change to looping over a list of domains, remove unnecessary use aliased
 * Delete, don't comment.
 * Describe better what exactly I copied from Locale::TextDomain
Provide a link to a user's collection
Switch out all the MB::S::Translation packages to use a role.

 * Made MusicBrainz::Server::Role::Translation, migrated
 * Had to keep sub l/ln/lp in the actual modules (due to symbol
   __PACKAGE__); they don't depend on the parameters, however.
MBS-4241: Locale::Util's web_set_locale, and MBS-4223: regex.

 * Change the format of languages in _set_language to e.g. en_AQ (from
   en-aq) [MBS-4223]
 * Use Locale::Util's web_set_locale, which sets the language correctly
   for the gettext_xs module [MBS-4241]
MBS-2903: Fix Artist->find_by_work

Artist->find_by_work finds artists of a works related recordings (via artist
credits), and also all artists that are related to a work.
Add methods to Statistics to find top editors/voters

Introduces the following new methods on the Data::Statistics dao:

* top_recently_active_editors
* top_editors
* top_recently_active_voters
* top_voters
Add /statistics/editors
Cache the statistics as they are expensive to compute

The cache expires after 1 day
Do not run CREATE INDEX CONCURRENTLY inside a transaction
Stats page should show a combination of accepted edits and auto edits
Order top overall editors by a combination of accepted edits and auto edits
Use more consistent capitalisation
MBS-3904: Do not allow yes/no/abstain votes on own edits

The 'approve' vote needs to be allowed, as this is what happens when an
auto-editor approves their own open edit. However, manually crafting a form
submission will only enter the vote but won't actually do the approval, nor does
the edit queue use 'approve' votes when making decisions, so being able to enter
this vote is not harmful.
MBS-2387: Intelligently merge release labels by discarding release labels with no catalog label when possible

If we have >1 release_labels with the same label and at least 1 has a catalog
number, remove any release_labels that have a NULL catalog number.
Change InitDb.pl to be able to initialize the test database. (carton exec -- admin/InitDb.pl --database=TEST --createdb --clean).
MBS-4738, create test database in create_test_db.sh.