Fix issue where actor position was inaccurate on screen.

Previously, all NPC positions were graphically represented one iteration
behind the current one.  This was because the player was only triggering
animations *after* the player acted.  Triggering the animations would
update NPCs so the would be shown where they were after the players
previous action; not the players *latest* action.

To fix this, if the Animator is NOT playing and the player is NOT acting,
we run a while(true) loop to iterate through all of the NPCs on the map.
When we reach the player again, we tell the Animator to play and the
player to act again.  When the game state update() method runs again, the
Animator will be playing, which prevents user input.  When the Animator
is finished, the player is already in the "acting" state and input is
once again allowed.

Signed-off-by: suicidepills <atom.mac@gmail.com>
Change Actor.track() -> Actor.seek(), add Actor.flee() placeholder.

Signed-off-by: suicidepills <atom.mac@gmail.com>
Add lineOfSight() to map, give NPCs line-of-sight ability.

NPCs are not blue by default but will turn red when they are able to see
the player.

Signed-off-by: suicidepills <atom.mac@gmail.com>