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
Move the tutorial overmap code to tutorial class

This belongs into the tutorial class, the overmap should not know about
this special game mode.

Fix: the constructor of item does not have a invlet parameter anymore. The invlet must be set separately.
Add game::get_abs_lev[xyz]

They are wrapper to return the global lev[xyz] (absolute submap coordinates of the currently loaded map).
This allows to omit storing the coordinates of the current overmap in factions/npcs/events. Instead only the absolute coordinates are stored.

events:
Defined map_point as global submap coordinates.
Use INT_MIN as default map_position because (-1,-1) is a valid and likely position now, also changed this in the game::add_event function declaration.
Removed parameters from calling game::add_event when those parameters should have the default value.
Moved constructors of event into cpp file.

factions:
Made mapx,mapy global coordinates, and removed the obsolete omx,omy.

computer.cpp:
Made some functions use global coordinates (for display and for random lab notes).

game::update_map:
Made the code for loading the new cur_om (after map shifting) simpler.

Used map::getabs to get coordinates of specific map squares and than translate them in different coordinate systems as needed (e.g. in iuse::fishing_rod_basic).
Remove unused old save_info functions.

The are used to store the data in the old legacy (non-json) format.
Only the functions to load those data should remain. Writting this
format should not be supported.
Fix vehicle tracking on overmap

Remove vehicel::lev[xy], instead use game::m to get the global
coordinates of the vehicle and use those to setup/deactivate the vehicle
tracking in the overmaps.
This also moves enable/disable of tracking into the overmapbuffer to
avoid using game::cur_om.
All the tracking related code is now in the overmapbuffer.

map.cpp:
Removed calls to update_map_[xy] during shift. this would only update
the vehicle::lev[xy] which is now gone and update the tracking in the
overmap, but shifting the map does not change the vehicle position in
the overmap, so this is not needed at all.

In displace_vehicle: call a new vehicle function to update the submap
coordinates and trigger an update of the vehicle position in the
overmap (if tracking is enabled).

Documentation!
Fix npc spawn as a result of help call.
Make map::loadn recusive

Instead of letting the caller call it again, make the function call itself
again when the requested submaps have been generated.
This should avoid some needless overhead on the side of the caller and also
makes sure that the normal on-submap-load code is always run (in case someone forgot to check the return value of map::loadn).
Make npc position absolute.

Added legacy loading of om[xyz]
Added new coordiante translation functions: submap to overmap
Removed overmap pointer parameter from npc::spawn_at, coordinates are now absolute.
Minor difficulty tweak in construction.json.

As suggested here:
http://smf.cataclysmdda.com/index.php?topic=7296.msg164592#msg164592
A typo fix.
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.