Move utility functions out of Types
Fixup line of sight

The previous implementation looked at a bounding box between the player
and the monster. We want only to look for walls on the "straight" line
between the player and the monster. Of course, this is difficult with
the cells being squares, so interpolate creates a line as straight as
possible.
Make Zombies track the last known hero position

Makes their behavior a lot more natural as they won't try to walk the
shortest path through a wall to reach the hero.