Prepare chunk

Adds the `cWorld::PrepareChunk()` function that loads / generates a chunk and lights it.

Spawn preparation then uses this function.

Has additional benefits, such as providing callbacks when queueing chunks for loading, saving and generating.

Fixes #1615 
No, it won't, because it won't tell whether it removed anything or not, and we need that for the wakeup event signalling.