AMEC-2030: Refactor bootstrap migration; introduce new versioning scheme

The old numbering scheme for DB schema migrations has a number of problems,
the main one being that it forces the release version to be exactly three
single-digit numbers. This commit (which is a squash) refactors the
migration system such that:

  - The migrations that the system may perform are no longer hard-coded
    procedural logic, but are represented as objects.

  - The pre-existing, hard-coded migrations are moved from
    BootstrapMigratorServiceImpl to a new LegacyMigration enum.

  - New migrations should receive version numbers greater than 1000, which
    are independent from the release version.

  - BootstrapMigratorServiceImpl no longer inspects the POM version, but
    uses the greatest available migration number as the "binary version".
AMEC-2030: Code style
Merge branch 'master' into dev-AMEC-2030
AMEC-2030: Add messages to migration precondition checks
Merge branch 'master' into dev-AMEC-2030
Merge branch 'master' into dev-AMEC-2030
AMEC-2030: Immutability in constant list of migrations
AMEC-2236 added logic to bring the media coverage form link to the top
Merge remote-tracking branch 'origin/dev-AMEC-2236' into release/2.9.5rc
Merge branch 'dev-AMEC-2030' into release/2.9.5rc