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.
Merge remote-tracking branch 'dda/pr/8346' into dda-master

* dda/pr/8346:
  Make npc position absolute.
  Make map::loadn recusive
  Fix npc spawn as a result of help call.
  Fix vehicle tracking on overmap
  Remove unused old save_info functions.
  Add game::get_abs_lev[xyz]
  Move the tutorial overmap code to tutorial class

Conflicts:
	src/event.cpp
	src/faction.cpp
	src/iuse.cpp
	src/mapgen.cpp
	src/npc.cpp
	src/npc.h
Re-disable two-way radio until events are expanded to handle stringified faction ids.
Remove some unused variables.