Synchronise lock on changes, (un)load of chunk

This forces changes to the plants in a chunk to not run concurrently with that chunk being loaded or unloaded. The reason is that any such change would be lost if a load is active, and could cause even stranger issues if an unload is active (iteration behaviour is undefined when the collection is changed during iteration).

This may block the main thread for the duration of that single chunk being loaded or unloaded.