Refactoring: Eliminated duplication of walk-animation code that was between NPC and PC classes. Made animations able to composite with other animations. Simplified player.move() function. MapScreen now owns an animator to ensure that render() is only called once per frame.