Apply field damage to npcs.

Fixes #9483

Someone please rename #9120 to indicate that part of it (fire hurting npcs) has been fixed, but the other part (npcs using flamethrowers inside) has not, or make a new issue.

They still use `map::route`, which ignores fields completely, but they will try to avoid stepping directly into a dangerous field (when possible). 

There is a certain inconsistency about the field effects (applies to all creatures): effects are applied when creature moves onto the square *and* at the begin of the turn (in case the creature stood still). This can lead to getting more damage than one would expect. For example a quick creature could move 2 fields with each step. When standing still on a field, it's hurt once. But when moving it is hurt twice by the two squares it enters. Than it is hurt again at the begin of the next turn. I don't see any solution for this.
In this case `u` is the parameter to the function, it can be `g->u` or some npc, whatever the function was called with - it's the callers choice. `g->u` is always the player character. I can alternatively name the parameter `p` or `the_player` if that's less confusing.