Base class from which one can more easily implement a migration step
that should be executed only once per installation.

Concrete implementations of this class should register themselves in services.xml.
jEdit will call doMigration() on each object, which will skip the ones that
have been done before.

The time that these services are automatically executed by jEdit is during the
"initializing properties" step. This means that implementations that need to
update or remove certain properties during upgrades can take advantage of this class.