This commit addresses issue 1851 "upgrader does not handle new config entries also present in current configuration". This issue is somewhat of a corner case but this code will allow a user to better deal with problems that might arise migrating the configuration or schema of a server.
Prior to this commit, migration of schema and/or configuration was handled all at once by a utility class so if there were any problems the upgrade would fail with a generic error. With this commit, changes are processed one at a time by the upgrader itself so if there are problems with a particular change the upgrader can prompt explain the problem to the user and prompt for further direction (cancel, continue anyway, retry). There are still ways in which the experience could be improved but I'll leave this for the future if ever since I wouldn't expect this code to be exercised much.
Here a new class MigrationManager is introduced to consolidate the logic for migration into a single class to improve testability and reduce the size of the already bloated Upgrader class.
This commit also addresses issue 1969 to remove a erroneous Next button on the wizard itself.