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
false,
            false,
            Collections.singletonList(".ext-unman-old")
        );
        assertIndexHasCorrectProperties(
            finalMetadata,
            ".second-int-man-old-reindexed-for-8",
            SECOND_FEATURE_IDX_FLAG_VALUE,
            true,
            true,
            Arrays.asList(".second-int-man-old", ".second-internal-managed-alias")
        );
    }
    private static final SystemIndexDescriptor SECOND_FEATURE_IDX_DESCIPTOR = SystemIndexDescriptor.builder()
        .setIndexPattern(".second-int-man-*")
        .setAliasName(".second-internal-managed-alias")
        .setPrimaryIndex(".second-int-man-old")
        .setType(SystemIndexDescriptor.Type.INTERNAL_MANAGED)
        .setSettings(createSimpleSettings(Version.V_7_0_0, 0))
        .setMappings(createSimpleMapping(true, true))
        .setOrigin(ORIGIN)
        .setVersionMetaKey(VERSION_META_KEY)
        .setAllowedElasticProductOrigins(Collections.emptyList())
        .setMinimumNodeVersion(Version.V_7_0_0)
        .setPriorSystemIndexDescriptors(Collections.emptyList())
        .build();
    public static class SecondPlugin extends Plugin implements SystemIndexPlugin {
        private static final AtomicReference<Function<ClusterState, Map<String, Object>>> preMigrationHook = new AtomicReference<>();
        private static final AtomicReference<BiConsumer<ClusterState, Map<String, Object>>> postMigrationHook = new AtomicReference<>();
        public SecondPlugin() {