[ENGINE] Fix updates dynamic settings in InternalEngineHolder

After the refactoring in #8784 some settings didn't get passed to the
actual engine and there exists a race if the settings are updated while
the engine is started such that the actual starting engine doesn't see
the latest settings. This commit fixes the concurrency issue as well as
adds tests to ensure the settings are reflected.

here is an example of the concurrency issue
http://build-us-00.elasticsearch.org/job/es_core_1x_suse/166/
```
[node_s2] [test][0] updating index.fail_on_corruption from [false] to [true]

... but further down we see

[node_s2] [test][0] corrupt file detected source: [recovery phase 1] but [index.fail_on_corruption] is set to [false]
```