There's some cleanup to be done in `FeatureMigrationIT` and related classes.

- [x] Convert `static` `preMigrationHook` and `postMigrationHook` to use instance members, retrieved from the `internalCluster()`
- [x] Use Hamcrest matchers as described [in this comment](https://github.com/elastic/elasticsearch/pull/84192/files#r812224067) for better failure output
- [x] Rename `createSimpleSettings` to `createSettings`
- [x] Rename `createSimpleMapping` to `createMapping`
- [x] add support for unknown fields https://github.com/elastic/elasticsearch/pull/84258#pullrequestreview-890890422
modules/reindex/src/internalClusterTest/java/org/elasticsearch/migration/MultiFeatureMigrationIT.java
assertThat(postMigrationHookCalled.get(), nullValue());
            assertThat(secondPluginPreMigrationHookCalled.get(), nullValue());
            assertThat(secondPluginPostMigrationHookCalled.get(), nullValue());
            Map<String, Object> metadata = new HashMap<>();
            metadata.put("stringKey", "first plugin value");
            
            FeatureMigrationResults currentResults = clusterState.metadata().custom(FeatureMigrationResults.TYPE);
            assertThat(currentResults, nullValue());
            preMigrationHookCalled.set(true);
            hooksCalled.countDown();
            return metadata;
        });
        TestPlugin.postMigrationHook.set((clusterState, metadata) -> {
            
            assertThat(preMigrationHookCalled.get(), is(true));
            assertThat(secondPluginPreMigrationHookCalled.get(), nullValue());
            assertThat(secondPluginPostMigrationHookCalled.get(), nullValue());
            assertThat(metadata, hasEntry("stringKey", "first plugin value"));
            
            FeatureMigrationResults currentResults = clusterState.metadata().custom(FeatureMigrationResults.TYPE);
            assertThat(currentResults, nullValue());
            postMigrationHookCalled.set(true);
            hooksCalled.countDown();
        });
        SecondPlugin.preMigrationHook.set(clusterState -> {
            
            assertThat(preMigrationHookCalled.get(), is(true));
            assertThat(postMigrationHookCalled.get(), is(true));
            assertThat(secondPluginPostMigrationHookCalled.get(), nullValue());
            Map<String, Object> metadata = new HashMap<>();