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
Auto-format
AMEC-2080: Refactor, debug, and secure PasswordDigestService
AMEC-2080: Debug legacy password verification
Merge branch 'master' into dev-AMEC-2080
AMEC-2030: Add messages to migration precondition checks
Merge branch 'master' into dev-AMEC-2030
Merge branch 'master' into dev-AMEC-2080
Merge branch 'master' into dev-AMEC-2030
Merge branch 'master' into dev-AMEC-2080
AMEC-2030: Immutability in constant list of migrations
AMEC-2238: CrossRef DOIs are being displayed in citations. Deleted code need to revert back once its decided to show
the dois from table.
Merge remote-tracking branch 'origin/dev-AMEC-2238' into release/2.9.5rc
set version in pom files to 2.9.5
Merge remote-tracking branch 'origin/dev-AMEC-2080' into release/2.9.5rc
AMEC-2245 fixed Unkown
AMEC-2236 added logic to bring the media coverage form link to the top
Merge remote-tracking branch 'origin/dev-AMEC-2245' into release/2.9.5rc