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
AMEC-2143 moved the recaptcha logic to related content tab
Adding methods / properties to support for one time token authentication
AMEC-1779 updated unit test
AMEC-1779
added javascript logic to display the recaptcha information vs getting the html from java
added small amount of validation
AMEC-2028: show the author supplied doi in the references
AMEC-2035: Change name of "CrossRef" link in references
AMEC-2036: update style of references
AMEC-1982: show crossref/pubmed/google scholer links if article is journal
AMEC-2028: de-link doi references
set version in pom files to 2.9.1