Fix kills by the player not been registered as such
Make a bunch of Creature/player/npc/monster functions const.

Added "point pos() const" as Creature function. It was already defined for monsters and player anyway.
Remove npc::die(bool), use Creature::die() instead.

Made npc::dead private
Added npc::is_dead() similar to monster::is_dead.
Actually npc::die() is now similar to monster::die.
Unify the print_info functions,

print_info is now part of the Creature interface, player, npc and monster have their special override.
This allows to use the game::critter_at function to get all kind of critters in one function call (instead of using npc_at, mon_at, player-at).
When targeting, the npc information will be shown like the monster information.
Added common game::draw_critter function,

To draw all kind of creatues.

Npcs can now be seen with infrared. All objects of type Character are warm blooded, for now.

Renamed player::color to player::basic_symbol_color to match the definition in Creature.

Removed npc::draw and added npc::basic_symbol_color. The drawing is done by Creature::draw.

Made the drawing related functions in Creature public, so the animation code/ranged.cpp can access it.
Fix exploits in ranged combat:

When the player targets an invisible creature, it would *not* display the red * to indicate the current target. Instead the terrain remains unchanged.
Changed the code to include a check for the target creature to be seen.

Similar for when targeting a vehicle.

Simplified the code for drawing the target *, don't need to have different code for snap_to_target.

Proper check for seen-by-player, player::sees handles the special cases like digging monsters.
Fix mission_fail::kill_npc:

This function can be called indirectly from inside the game::cleanup_dead loop,
therefor don't change game::active_npc there.