No acceleration w/o engine_on

By brute-forcing a lock on acceleration, fixes #7564.  Not pretty and
still needs to turn off the smoke and noise, so don't merge it yet!
Thought as much

Locking things to engine_on looked like it did it.  Too easy: broke
bicycles.

This allows muscle-powered vehicles to move, and locks out installing a
muscle engine if any other engine exists in the vehicle.  That's to
prevent jokers from installing hand rims in their hatchback and
exploiting the muscle-power bypass.

Only thing keeping this WIP is my not being able to find a way to
indicate that last lockout in the veh_interact UI.  Will look into it.
Missing underscores

It was KA101, in the Study, with the Missed Something In A Merge Check!
/Accusative, dammit ;-)

(Without the underscores there, it gave me the %1$s, etc in the actual
message log.  Interface bug.)
Conflict-Informer

Not the cleanest solution, but one less blocker in the world.
Increases artifact armor coverage

As reported on the forums:
http://smf.cataclysmdda.com/index.php?topic=7289.msg164471#msg164471
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.
Reformating and whitespace.
Unclobber python file object type. Also actually call file close.
Get rid of static directory path in favor of using getcwd(). Also use python magic to create file names in a crossplatform way.
Some refactoring of the main function.
Give opened files more descriptive names.
Use with to open files. Requires >= Python2.5.
Some easy refactoring.
Label magic numbers as such.