Fires the appropriate enter/exit/inside zone event(s) for entity moving from → to. Called by the movement listeners; rarely needed directly.