Added ID and hash code chaching to Entity
changed Entity.World to readonly underlying field