It was weirdly split which parts the task does edit and which parts the main thread does.
`CMapGeneratorWorker` is now unaware of threads and synchronisation (Except for the `progress`). There is no explicit `std::mutex` anymore.
The only purpose of `CMapGeneratorCallbackData` (the old `CMapGeneratorWorker`) is to provide the callbacks to the script (hence the renaming).
The internal API is easyer: The `MapGenerator` does only have to construct the `MapGeneratorCallbackData` and call `Execute` on it.
The external API is easyer: `MapGenerator::GetResult` could have ben called when the generation wasn't finished (leading to UB). Now It does wait for the result.
Likely performance is improved but that's a secondary-effect.