computeSafeLanding() pushed the arrival point along the entry
direction only until it cleared the destination's iris footprint - it
never checked whether that spot was solid ground. A gate built close
to a wall (e.g. inside a room/temple) could push the landing straight
into that wall, embedding the player in it - which incidentally let
them walk out through the wall instead of a door, since they're
already clipped partway through it.
Now checks feet AND head height at each step for solid blocks while
searching forward (up to 8 blocks), stopping at the first spot that's
both clear of the iris and open space. Falls back to the furthest
wall-clear point found if nothing satisfies both within range, rather
than the original blind offset.