World also stores objects in a map of the world for fast access

Map is a simple list of lists.
Reimplemented WorldObject.GetRangeIterator with this map. Made this method
way faster. It went from being the first method by time consumed to not
being under the top ten.
Made handling of objects ids stricter

Trying to eat food that does not exist is a rule violation now
World.DeleteObject does not check if id exists, so double delete
raises an exception now
When an object dies, a TurnOver exception is raised to end its turn
This especially avoids double deletes in the case a wesen dies but
continuous its turn and dies again