Changing threading from per-region to per-world

Remove complicated AsyncManager system
Modularize the engine (more or less)