Prepared API changes for a better unloadWorld mechanism

Also added UnloadWorldHook which is fired upon unloading a world,
so plugins that maybe hold a reference to the world in question can release it.

If they don't the world will stay in memory.