Remove lock boolean flag from World and enforce configuration via WorldBuilder

Using a flag meant failing the task when misused where this API prevents
misuse at compile time.
This makes trying to access configuration methods after building the world
a compilation error because the WorldBuilder is consumed by build.
It also prevents trying to call update etc. before configuration is complete
because the World::new is made private and World are always made with
a builder.